obsidian-integration-testing 14.1.0 → 15.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/lib/cjs/appium-dependencies.cjs +2 -5
- package/dist/lib/cjs/appium-server-marker.cjs +3 -9
- package/dist/lib/cjs/asar-fallback-detection.cjs +2 -5
- package/dist/lib/cjs/avd-probe-verdict.cjs +3 -9
- package/dist/lib/cjs/capture-obsidian-screenshot.cjs +9 -1
- package/dist/lib/cjs/capture-obsidian-screenshot.d.cts +21 -0
- package/dist/lib/cjs/capture-screenshot.cjs +2 -5
- package/dist/lib/cjs/cli.cjs +2 -5
- package/dist/lib/cjs/demo-vault-populate.cjs +7 -9
- package/dist/lib/cjs/device-setting-restore.cjs +2 -5
- package/dist/lib/cjs/electron-compatibility.cjs +8 -11
- package/dist/lib/cjs/emulator-arguments.cjs +14 -14
- package/dist/lib/cjs/emulator-marker.cjs +4 -13
- package/dist/lib/cjs/emulator-reaper.cjs +2 -5
- package/dist/lib/cjs/emulator-snapshot.cjs +3 -9
- package/dist/lib/cjs/eval-cap-exceeded-error.cjs +2 -5
- package/dist/lib/cjs/exec.cjs +12 -24
- package/dist/lib/cjs/function-expression.cjs +2 -5
- package/dist/lib/cjs/global-setup-core.cjs +53 -18
- package/dist/lib/cjs/hide-vault-name.cjs +45 -0
- package/dist/lib/cjs/hide-vault-name.d.cts +67 -0
- package/dist/lib/cjs/index.cjs +9 -1
- package/dist/lib/cjs/index.d.cts +6 -2
- package/dist/lib/cjs/installer-asset.cjs +3 -9
- package/dist/lib/cjs/installer-compatibility.cjs +9 -12
- package/dist/lib/cjs/label-screenshot.cjs +63 -4
- package/dist/lib/cjs/label-screenshot.d.cts +66 -2
- package/dist/lib/cjs/leftover-cleanup.cjs +2 -5
- package/dist/lib/cjs/library.cjs +1 -1
- package/dist/lib/cjs/mobile-input.cjs +17 -31
- package/dist/lib/cjs/namespace-bootstrap.cjs +3 -9
- package/dist/lib/cjs/obsidian-executable.cjs +2 -5
- package/dist/lib/cjs/obsidian-installer.cjs +3 -9
- package/dist/lib/cjs/obsidian-instance.cjs +1 -1
- package/dist/lib/cjs/obsidian-instance.d.cts +8 -0
- package/dist/lib/cjs/owned-instance-exit-marker.cjs +2 -5
- package/dist/lib/cjs/owned-instance-exited-error.cjs +13 -17
- package/dist/lib/cjs/process-exit-message.cjs +3 -9
- package/dist/lib/cjs/renderer-boot-detection.cjs +3 -9
- package/dist/lib/cjs/setup-lock.cjs +3 -9
- package/dist/lib/cjs/sharp-loader.cjs +1 -1
- package/dist/lib/cjs/sharp-loader.d.cts +11 -0
- package/dist/lib/cjs/soft-keyboard-geometry.cjs +4 -9
- package/dist/lib/cjs/stale-build-detection.cjs +115 -0
- package/dist/lib/cjs/stale-build-detection.d.cts +108 -0
- package/dist/lib/cjs/stale-build-error.cjs +74 -0
- package/dist/lib/cjs/stale-build-error.d.cts +81 -0
- package/dist/lib/cjs/strict-proxy.cjs +3 -9
- package/dist/lib/cjs/transport-appium.cjs +3 -9
- package/dist/lib/cjs/transport-desktop-cdp.cjs +18 -32
- package/dist/lib/cjs/transport-factory.cjs +20 -25
- package/dist/lib/cjs/transport-options.cjs +2 -5
- package/dist/lib/cjs/transport-options.d.cts +36 -0
- package/dist/lib/cjs/vault-teardown-verdict.cjs +2 -5
- package/dist/lib/cjs/version-matrix.cjs +4 -13
- package/dist/lib/cjs/wedged-appium-server.cjs +3 -9
- package/dist/lib/esm/appium-dependencies.mjs +2 -5
- package/dist/lib/esm/appium-server-marker.mjs +3 -9
- package/dist/lib/esm/asar-fallback-detection.mjs +2 -5
- package/dist/lib/esm/avd-probe-verdict.mjs +3 -9
- package/dist/lib/esm/capture-obsidian-screenshot.d.mts +21 -0
- package/dist/lib/esm/capture-obsidian-screenshot.mjs +9 -1
- package/dist/lib/esm/capture-screenshot.mjs +2 -5
- package/dist/lib/esm/cli.mjs +2 -5
- package/dist/lib/esm/demo-vault-populate.mjs +7 -9
- package/dist/lib/esm/device-setting-restore.mjs +2 -5
- package/dist/lib/esm/electron-compatibility.mjs +8 -11
- package/dist/lib/esm/emulator-arguments.mjs +14 -14
- package/dist/lib/esm/emulator-marker.mjs +4 -13
- package/dist/lib/esm/emulator-reaper.mjs +2 -5
- package/dist/lib/esm/emulator-snapshot.mjs +3 -9
- package/dist/lib/esm/eval-cap-exceeded-error.mjs +2 -5
- package/dist/lib/esm/exec.mjs +12 -24
- package/dist/lib/esm/function-expression.mjs +2 -5
- package/dist/lib/esm/global-setup-core.mjs +60 -19
- package/dist/lib/esm/hide-vault-name.d.mts +67 -0
- package/dist/lib/esm/hide-vault-name.mjs +21 -0
- package/dist/lib/esm/index.d.mts +6 -2
- package/dist/lib/esm/index.mjs +8 -2
- package/dist/lib/esm/installer-asset.mjs +3 -9
- package/dist/lib/esm/installer-compatibility.mjs +9 -12
- package/dist/lib/esm/label-screenshot.d.mts +66 -2
- package/dist/lib/esm/label-screenshot.mjs +61 -3
- package/dist/lib/esm/leftover-cleanup.mjs +2 -5
- package/dist/lib/esm/library.mjs +1 -1
- package/dist/lib/esm/mobile-input.mjs +17 -31
- package/dist/lib/esm/namespace-bootstrap.mjs +3 -9
- package/dist/lib/esm/obsidian-executable.mjs +2 -5
- package/dist/lib/esm/obsidian-installer.mjs +3 -9
- package/dist/lib/esm/obsidian-instance.d.mts +8 -0
- package/dist/lib/esm/obsidian-instance.mjs +1 -1
- package/dist/lib/esm/owned-instance-exit-marker.mjs +2 -5
- package/dist/lib/esm/owned-instance-exited-error.mjs +13 -17
- package/dist/lib/esm/process-exit-message.mjs +3 -9
- package/dist/lib/esm/renderer-boot-detection.mjs +3 -9
- package/dist/lib/esm/setup-lock.mjs +3 -9
- package/dist/lib/esm/sharp-loader.d.mts +11 -0
- package/dist/lib/esm/sharp-loader.mjs +1 -1
- package/dist/lib/esm/soft-keyboard-geometry.mjs +4 -9
- package/dist/lib/esm/stale-build-detection.d.mts +108 -0
- package/dist/lib/esm/stale-build-detection.mjs +84 -0
- package/dist/lib/esm/stale-build-error.d.mts +81 -0
- package/dist/lib/esm/stale-build-error.mjs +50 -0
- package/dist/lib/esm/strict-proxy.mjs +3 -9
- package/dist/lib/esm/transport-appium.mjs +3 -9
- package/dist/lib/esm/transport-desktop-cdp.mjs +18 -32
- package/dist/lib/esm/transport-factory.mjs +20 -25
- package/dist/lib/esm/transport-options.d.mts +36 -0
- package/dist/lib/esm/transport-options.mjs +2 -5
- package/dist/lib/esm/vault-teardown-verdict.mjs +2 -5
- package/dist/lib/esm/version-matrix.mjs +4 -13
- package/dist/lib/esm/wedged-appium-server.mjs +3 -9
- package/package.json +20 -19
package/dist/lib/cjs/index.cjs
CHANGED
|
@@ -39,6 +39,7 @@ __export(index_exports, {
|
|
|
39
39
|
PUBLIC_LATEST: () => import_obsidian_version.PUBLIC_LATEST,
|
|
40
40
|
RendererFailedToInitializeError: () => import_renderer_failed_to_initialize_error.RendererFailedToInitializeError,
|
|
41
41
|
SilentAsarFallbackError: () => import_silent_asar_fallback_error.SilentAsarFallbackError,
|
|
42
|
+
StaleBuildError: () => import_stale_build_error.StaleBuildError,
|
|
42
43
|
TemporaryVault: () => import_temporary_vault.TemporaryVault,
|
|
43
44
|
assertValidConfigDirectory: () => import_config_directory.assertValidConfigDirectory,
|
|
44
45
|
bootstrapDemoVaultPlugins: () => import_demo_vault_bootstrap.bootstrapDemoVaultPlugins,
|
|
@@ -63,9 +64,11 @@ __export(index_exports, {
|
|
|
63
64
|
fitScreenshotToCanvas: () => import_fit_screenshot.fitScreenshotToCanvas,
|
|
64
65
|
getAppConfig: () => import_app_config.getAppConfig,
|
|
65
66
|
getVersionMetadata: () => import_obsidian_metadata.getVersionMetadata,
|
|
67
|
+
hideVaultName: () => import_hide_vault_name.hideVaultName,
|
|
66
68
|
isPng: () => import_capture_screenshot.isPng,
|
|
67
69
|
isScriptTimeoutError: () => import_eval_cap_exceeded_error.isScriptTimeoutError,
|
|
68
70
|
labelScreenshot: () => import_label_screenshot.labelScreenshot,
|
|
71
|
+
measureLabelCaption: () => import_label_screenshot.measureLabelCaption,
|
|
69
72
|
openObsidianSettingsTab: () => import_open_obsidian_settings_tab.openObsidianSettingsTab,
|
|
70
73
|
parseInputMethodState: () => import_soft_keyboard_geometry.parseInputMethodState,
|
|
71
74
|
pollInObsidian: () => import_poll_in_obsidian.pollInObsidian,
|
|
@@ -124,6 +127,7 @@ var import_eval_cap_exceeded_error = require("./eval-cap-exceeded-error.cjs");
|
|
|
124
127
|
var import_eval_cap = require("./eval-cap.cjs");
|
|
125
128
|
var import_eval_in_obsidian = require("./eval-in-obsidian.cjs");
|
|
126
129
|
var import_fit_screenshot = require("./fit-screenshot.cjs");
|
|
130
|
+
var import_hide_vault_name = require("./hide-vault-name.cjs");
|
|
127
131
|
var import_incompatible_installer_version_error = require("./incompatible-installer-version-error.cjs");
|
|
128
132
|
var import_installer_compatibility = require("./installer-compatibility.cjs");
|
|
129
133
|
var import_integration_setup_failed_error = require("./integration-setup-failed-error.cjs");
|
|
@@ -140,6 +144,7 @@ var import_run_version_matrix = require("./run-version-matrix.cjs");
|
|
|
140
144
|
var import_silent_asar_fallback_error = require("./silent-asar-fallback-error.cjs");
|
|
141
145
|
var import_soft_keyboard_geometry = require("./soft-keyboard-geometry.cjs");
|
|
142
146
|
var import_soft_keyboard = require("./soft-keyboard.cjs");
|
|
147
|
+
var import_stale_build_error = require("./stale-build-error.cjs");
|
|
143
148
|
var import_temporary_vault = require("./temporary-vault.cjs");
|
|
144
149
|
var import_transport_appium = require("./transport-appium.cjs");
|
|
145
150
|
var import_transport_desktop_cdp = require("./transport-desktop-cdp.cjs");
|
|
@@ -170,6 +175,7 @@ var import_version_matrix = require("./version-matrix.cjs");
|
|
|
170
175
|
PUBLIC_LATEST,
|
|
171
176
|
RendererFailedToInitializeError,
|
|
172
177
|
SilentAsarFallbackError,
|
|
178
|
+
StaleBuildError,
|
|
173
179
|
TemporaryVault,
|
|
174
180
|
assertValidConfigDirectory,
|
|
175
181
|
bootstrapDemoVaultPlugins,
|
|
@@ -194,9 +200,11 @@ var import_version_matrix = require("./version-matrix.cjs");
|
|
|
194
200
|
fitScreenshotToCanvas,
|
|
195
201
|
getAppConfig,
|
|
196
202
|
getVersionMetadata,
|
|
203
|
+
hideVaultName,
|
|
197
204
|
isPng,
|
|
198
205
|
isScriptTimeoutError,
|
|
199
206
|
labelScreenshot,
|
|
207
|
+
measureLabelCaption,
|
|
200
208
|
openObsidianSettingsTab,
|
|
201
209
|
parseInputMethodState,
|
|
202
210
|
pollInObsidian,
|
|
@@ -229,4 +237,4 @@ var import_version_matrix = require("./version-matrix.cjs");
|
|
|
229
237
|
withSoftKeyboardEnabled,
|
|
230
238
|
writeDeviceSetting
|
|
231
239
|
});
|
|
232
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQ29udGFpbnMgdGhlIGVudHJ5IHBvaW50IGZvciB0aGUgaW50ZWdyYXRpb24gdGVzdGluZyBtb2R1bGUuXG4gKi9cblxuZXhwb3J0IHR5cGUgeyBSdW5BZGJQYXJhbXMgfSBmcm9tICcuL2FkYi5janMnO1xuZXhwb3J0IHtcbiAgcnVuQWRiQmluYXJ5LFxuICBydW5BZGJUZXh0LFxuICBydW5BZGJUZXh0V2l0aG91dERldmljZVxufSBmcm9tICcuL2FkYi5janMnO1xuZXhwb3J0IHR5cGUge1xuICBBcHBDb25maWdSZXN0b3JlLFxuICBHZXRBcHBDb25maWdQYXJhbXMsXG4gIFNldEFwcENvbmZpZ1BhcmFtcyxcbiAgV2l0aEFwcENvbmZpZ1BhcmFtc1xufSBmcm9tICcuL2FwcC1jb25maWcuY2pzJztcbmV4cG9ydCB7XG4gIGdldEFwcENvbmZpZyxcbiAgcmVzdG9yZUFwcENvbmZpZyxcbiAgc2V0QXBwQ29uZmlnLFxuICB3aXRoQXBwQ29uZmlnXG59IGZyb20gJy4vYXBwLWNvbmZpZy5janMnO1xuZXhwb3J0IHR5cGUge1xuICBBc2FyRmFsbGJhY2ssXG4gIEFzYXJGYWxsYmFja1RpZXIsXG4gIFJlc29sdmVBc2FyRmFsbGJhY2tQYXJhbXNcbn0gZnJvbSAnLi9hc2FyLWZhbGxiYWNrLWRldGVjdGlvbi5janMnO1xuZXhwb3J0IHsgcmVzb2x2ZUFzYXJGYWxsYmFjayB9IGZyb20gJy4vYXNhci1mYWxsYmFjay1kZXRlY3Rpb24uY2pzJztcbmV4cG9ydCB0eXBlIHsgQ2FwdHVyZU9ic2lkaWFuU2NyZWVuc2hvdE9wdGlvbnMgfSBmcm9tICcuL2NhcHR1cmUtb2JzaWRpYW4tc2NyZWVuc2hvdC5janMnO1xuZXhwb3J0IHsgY2FwdHVyZU9ic2lkaWFuU2NyZWVuc2hvdCB9IGZyb20gJy4vY2FwdHVyZS1vYnNpZGlhbi1zY3JlZW5zaG90LmNqcyc7XG5leHBvcnQgdHlwZSB7XG4gIENhcHR1cmVTY3JlZW5zaG90UGFyYW1zLFxuICBQbmdEaW1lbnNpb25zXG59IGZyb20gJy4vY2FwdHVyZS1zY3JlZW5zaG90LmNqcyc7XG5leHBvcnQge1xuICBidWlsZERldmljZU1ldHJpY3NPdmVycmlkZSxcbiAgZGVjb2RlQmFzZTY0UG5nLFxuICBpc1BuZyxcbiAgcmVhZFBuZ0RpbWVuc2lvbnNcbn0gZnJvbSAnLi9jYXB0dXJlLXNjcmVlbnNob3QuY2pzJztcbmV4cG9ydCB0eXBlIHsgQ2RwQ29tbWFuZFRpbWVvdXRFcnJvckNvbnN0cnVjdG9yUGFyYW1zIH0gZnJvbSAnLi9jZHAtY29tbWFuZC10aW1lb3V0LWVycm9yLmNqcyc7XG5leHBvcnQgeyBDZHBDb21tYW5kVGltZW91dEVycm9yIH0gZnJvbSAnLi9jZHAtY29tbWFuZC10aW1lb3V0LWVycm9yLmNqcyc7XG5leHBvcnQgdHlwZSB7IENvbmZpZ0RpcmVjdG9yeUZhbGxiYWNrRXJyb3JDb25zdHJ1Y3RvclBhcmFtcyB9IGZyb20gJy4vY29uZmlnLWRpcmVjdG9yeS1mYWxsYmFjay1lcnJvci5janMnO1xuZXhwb3J0IHsgQ29uZmlnRGlyZWN0b3J5RmFsbGJhY2tFcnJvciB9IGZyb20gJy4vY29uZmlnLWRpcmVjdG9yeS1mYWxsYmFjay1lcnJvci5janMnO1xuZXhwb3J0IHtcbiAgYXNzZXJ0VmFsaWRDb25maWdEaXJlY3RvcnksXG4gIERFRkFVTFRfQ09ORklHX0RJUkVDVE9SWVxufSBmcm9tICcuL2NvbmZpZy1kaXJlY3RvcnkuY2pzJztcbmV4cG9ydCB0eXBlIHtcbiAgQ2RwQ29ubmVjdGlvbixcbiAgQ29ubmVjdFRvQ2RwT3B0aW9uc1xufSBmcm9tICcuL2Nvbm5lY3QtdG8tY2RwLmNqcyc7XG5leHBvcnQgeyBjb25uZWN0VG9DZHAgfSBmcm9tICcuL2Nvbm5lY3QtdG8tY2RwLmNqcyc7XG5leHBvcnQgdHlwZSB7XG4gIENvbnRleHRBcmd1bWVudHMsXG4gIENvbnRleHRPZlxufSBmcm9tICcuL2NvbnRleHQtaWQuY2pzJztcbmV4cG9ydCB7IENvbnRleHRJZCB9IGZyb20gJy4vY29udGV4dC1pZC5janMnO1xuZXhwb3J0IHR5cGUge1xuICBTZXR1cEVycm9yUmVzb2x2ZXIsXG4gIFRyYW5zcG9ydE9wdGlvbnNSZXNvbHZlcixcbiAgVmF1bHRQYXRoUmVzb2x2ZXJcbn0gZnJvbSAnLi9jb250ZXh0LXByb3ZpZGVyLmNqcyc7XG5leHBvcnQge1xuICBzZXRTZXR1cEVycm9yUmVzb2x2ZXIsXG4gIHNldFRyYW5zcG9ydE9wdGlvbnNSZXNvbHZlcixcbiAgc2V0VmF1bHRQYXRoUmVzb2x2ZXJcbn0gZnJvbSAnLi9jb250ZXh0LXByb3ZpZGVyLmNqcyc7XG5leHBvcnQgdHlwZSB7XG4gIEJvb3RzdHJhcERlbW9WYXVsdFBsdWdpbnNQYXJhbXMsXG4gIEJvb3RzdHJhcERlbW9WYXVsdFBsdWdpbnNSZXN1bHQsXG4gIEJ1aWxkRGVtb1ZhdWx0UG9wdWxhdGVBc3luY1BhcmFtcyxcbiAgSW5zdGFsbGVkUGx1Z2luSW5mb1xufSBmcm9tICcuL2RlbW8tdmF1bHQtYm9vdHN0cmFwLmNqcyc7XG5leHBvcnQge1xuICBib290c3RyYXBEZW1vVmF1bHRQbHVnaW5zLFxuICBidWlsZERlbW9WYXVsdFBvcHVsYXRlQXN5bmNcbn0gZnJvbSAnLi9kZW1vLXZhdWx0LWJvb3RzdHJhcC5janMnO1xuZXhwb3J0IHR5cGUge1xuICBCdWlsZERlbW9WYXVsdFBvcHVsYXRlUGFyYW1zLFxuICBJbmplY3RQbHVnaW5QYXJhbXMsXG4gIFJlc29sdmVNaXNzaW5nSW5qZWN0ZWRQbHVnaW5zUGFyYW1zXG59IGZyb20gJy4vZGVtby12YXVsdC1wb3B1bGF0ZS5janMnO1xuZXhwb3J0IHtcbiAgYnVpbGREZW1vVmF1bHRQb3B1bGF0ZSxcbiAgcmVzb2x2ZU1pc3NpbmdJbmplY3RlZFBsdWdpbnNcbn0gZnJvbSAnLi9kZW1vLXZhdWx0LXBvcHVsYXRlLmNqcyc7XG5leHBvcnQgdHlwZSB7IFJlYWREZW1vVmF1bHRUcmVlUGFyYW1zIH0gZnJvbSAnLi9kZW1vLXZhdWx0LXRyZWUuY2pzJztcbmV4cG9ydCB7IHJlYWREZW1vVmF1bHRUcmVlIH0gZnJvbSAnLi9kZW1vLXZhdWx0LXRyZWUuY2pzJztcbmV4cG9ydCB7IERlc2t0b3BPbmx5UGx1Z2luU2tpcEVycm9yIH0gZnJvbSAnLi9kZXNrdG9wLW9ubHktcGx1Z2luLXNraXAtZXJyb3IuY2pzJztcbmV4cG9ydCB0eXBlIHsgQ2FwdHVyZURldmljZVNjcmVlbnNob3RQYXJhbXMgfSBmcm9tICcuL2RldmljZS1zY3JlZW5zaG90LmNqcyc7XG5leHBvcnQgeyBjYXB0dXJlRGV2aWNlU2NyZWVuc2hvdCB9IGZyb20gJy4vZGV2aWNlLXNjcmVlbnNob3QuY2pzJztcbmV4cG9ydCB0eXBlIHtcbiAgRGV2aWNlU2V0dGluZ1Jlc3RvcmUsXG4gIERldmljZVNldHRpbmdSZXN0b3JlRGVsZXRlLFxuICBEZXZpY2VTZXR0aW5nUmVzdG9yZVdyaXRlXG59IGZyb20gJy4vZGV2aWNlLXNldHRpbmctcmVzdG9yZS5janMnO1xuZXhwb3J0IHtcbiAgRGV2aWNlU2V0dGluZ1Jlc3RvcmVLaW5kLFxuICByZXNvbHZlRGV2aWNlU2V0dGluZ1Jlc3RvcmVcbn0gZnJvbSAnLi9kZXZpY2Utc2V0dGluZy1yZXN0b3JlLmNqcyc7XG5leHBvcnQgdHlwZSB7IEJ1aWxkRGV2aWNlU2V0dGluZ3NDb21tYW5kQXJndW1lbnRzUGFyYW1zIH0gZnJvbSAnLi9kZXZpY2Utc2V0dGluZ3MtY29tbWFuZC5janMnO1xuZXhwb3J0IHtcbiAgYnVpbGREZXZpY2VTZXR0aW5nc0NvbW1hbmRBcmd1bWVudHMsXG4gIERldmljZVNldHRpbmdOYW1lc3BhY2UsXG4gIERldmljZVNldHRpbmdWZXJiXG59IGZyb20gJy4vZGV2aWNlLXNldHRpbmdzLWNvbW1hbmQuY2pzJztcbmV4cG9ydCB0eXBlIHtcbiAgRGV2aWNlU2V0dGluZ1BhcmFtcyxcbiAgV2l0aFNvZnRLZXlib2FyZEVuYWJsZWRQYXJhbXMsXG4gIFdyaXRlRGV2aWNlU2V0dGluZ1BhcmFtc1xufSBmcm9tICcuL2RldmljZS1zZXR0aW5ncy5janMnO1xuZXhwb3J0IHtcbiAgZGVsZXRlRGV2aWNlU2V0dGluZyxcbiAgcmVhZERldmljZVNldHRpbmcsXG4gIHdpdGhTb2Z0S2V5Ym9hcmRFbmFibGVkLFxuICB3cml0ZURldmljZVNldHRpbmdcbn0gZnJvbSAnLi9kZXZpY2Utc2V0dGluZ3MuY2pzJztcbmV4cG9ydCB0eXBlIHtcbiAgRWxlY3Ryb25Db21wYXRpYmlsaXR5LFxuICBFbGVjdHJvbkNvbXBhdGliaWxpdHlUaWVyLFxuICBSZXNvbHZlRWxlY3Ryb25Db21wYXRpYmlsaXR5UGFyYW1zXG59IGZyb20gJy4vZWxlY3Ryb24tY29tcGF0aWJpbGl0eS5janMnO1xuZXhwb3J0IHsgcmVzb2x2ZUVsZWN0cm9uQ29tcGF0aWJpbGl0eSB9IGZyb20gJy4vZWxlY3Ryb24tY29tcGF0aWJpbGl0eS5janMnO1xuZXhwb3J0IHR5cGUge1xuICBFbXVsYXRvckRldmljZUNhbmRpZGF0ZSxcbiAgU2VsZWN0RW11bGF0b3JEZXZpY2VJZFBhcmFtc1xufSBmcm9tICcuL2VtdWxhdG9yLWRldmljZS1pZC5janMnO1xuZXhwb3J0IHsgc2VsZWN0RW11bGF0b3JEZXZpY2VJZCB9IGZyb20gJy4vZW11bGF0b3ItZGV2aWNlLWlkLmNqcyc7XG5leHBvcnQgdHlwZSB7IEV2YWxDYXBFeGNlZWRlZEVycm9yQ29uc3RydWN0b3JQYXJhbXMgfSBmcm9tICcuL2V2YWwtY2FwLWV4Y2VlZGVkLWVycm9yLmNqcyc7XG5leHBvcnQge1xuICBFdmFsQ2FwRXhjZWVkZWRFcnJvcixcbiAgaXNTY3JpcHRUaW1lb3V0RXJyb3Jcbn0gZnJvbSAnLi9ldmFsLWNhcC1leGNlZWRlZC1lcnJvci5janMnO1xuZXhwb3J0IHsgREVGQVVMVF9FVkFMX0NBUF9JTl9NSUxMSVNFQ09ORFMgfSBmcm9tICcuL2V2YWwtY2FwLmNqcyc7XG5leHBvcnQgdHlwZSB7XG4gIENsaWNrRWxlbWVudFBhcmFtcyxcbiAgQ2xpY2tNb3VzZVBhcmFtcyxcbiAgQ29tbW9uQXJndW1lbnRzLFxuICBDcmVhdGVOb3RlUGFyYW1zLFxuICBFdmFsSW5PYnNpZGlhblBhcmFtcyxcbiAgR2VuZXJpY09iamVjdCxcbiAgSG92ZXJFbGVtZW50UGFyYW1zLFxuICBMaWIsXG4gIE1vdXNlQnV0dG9uLFxuICBNb3ZlTW91c2VQYXJhbXMsXG4gIE9wZW5TZXR0aW5nc1RhYlBhcmFtcyxcbiAgUHJlc3NLZXlQYXJhbXMsXG4gIFR5cGVJbnRvRWRpdG9yUGFyYW1zLFxuICBVbmhvdmVyRWxlbWVudFBhcmFtcyxcbiAgV2FpdFVudGlsUGFyYW1zXG59IGZyb20gJy4vZXZhbC1pbi1vYnNpZGlhbi5janMnO1xuZXhwb3J0IHsgZXZhbEluT2JzaWRpYW4gfSBmcm9tICcuL2V2YWwtaW4tb2JzaWRpYW4uY2pzJztcbmV4cG9ydCB0eXBlIHtcbiAgQ29tcHV0ZUZpdFRvQ2FudmFzUGFyYW1zLFxuICBGaXRTY3JlZW5zaG90VG9DYW52YXNPcHRpb25zLFxuICBGaXRUb0NhbnZhc0dlb21ldHJ5XG59IGZyb20gJy4vZml0LXNjcmVlbnNob3QuY2pzJztcbmV4cG9ydCB7XG4gIGNvbXB1dGVGaXRUb0NhbnZhcyxcbiAgZml0U2NyZWVuc2hvdFRvQ2FudmFzXG59IGZyb20gJy4vZml0LXNjcmVlbnNob3QuY2pzJztcbmV4cG9ydCB0eXBlIHsgSW5jb21wYXRpYmxlSW5zdGFsbGVyVmVyc2lvbkVycm9yQ29uc3RydWN0b3JQYXJhbXMgfSBmcm9tICcuL2luY29tcGF0aWJsZS1pbnN0YWxsZXItdmVyc2lvbi1lcnJvci5janMnO1xuZXhwb3J0IHsgSW5jb21wYXRpYmxlSW5zdGFsbGVyVmVyc2lvbkVycm9yIH0gZnJvbSAnLi9pbmNvbXBhdGlibGUtaW5zdGFsbGVyLXZlcnNpb24tZXJyb3IuY2pzJztcbmV4cG9ydCB0eXBlIHtcbiAgSW5zdGFsbGVyQ29tcGF0aWJpbGl0eSxcbiAgSW5zdGFsbGVyQ29tcGF0aWJpbGl0eVRpZXIsXG4gIFJlc29sdmVJbnN0YWxsZXJDb21wYXRpYmlsaXR5UGFyYW1zXG59IGZyb20gJy4vaW5zdGFsbGVyLWNvbXBhdGliaWxpdHkuY2pzJztcbmV4cG9ydCB7IHJlc29sdmVJbnN0YWxsZXJDb21wYXRpYmlsaXR5IH0gZnJvbSAnLi9pbnN0YWxsZXItY29tcGF0aWJpbGl0eS5janMnO1xuZXhwb3J0IHR5cGUgeyBJbnRlZ3JhdGlvblNldHVwRmFpbGVkRXJyb3JDb25zdHJ1Y3RvclBhcmFtcyB9IGZyb20gJy4vaW50ZWdyYXRpb24tc2V0dXAtZmFpbGVkLWVycm9yLmNqcyc7XG5leHBvcnQgeyBJbnRlZ3JhdGlvblNldHVwRmFpbGVkRXJyb3IgfSBmcm9tICcuL2ludGVncmF0aW9uLXNldHVwLWZhaWxlZC1lcnJvci5janMnO1xuZXhwb3J0IHR5cGUge1xuICBDb21wdXRlTGFiZWxCYW5kUGFyYW1zLFxuICBMYWJlbEJhbmRHZW9tZXRyeSxcbiAgTGFiZWxTY3JlZW5zaG90T3B0aW9uc1xufSBmcm9tICcuL2xhYmVsLXNjcmVlbnNob3QuY2pzJztcbmV4cG9ydCB7XG4gIGJ1aWxkTGFiZWxTdmcsXG4gIGNvbXB1dGVMYWJlbEJhbmQsXG4gIGVzY2FwZVN2Z1RleHQsXG4gIGxhYmVsU2NyZWVuc2hvdFxufSBmcm9tICcuL2xhYmVsLXNjcmVlbnNob3QuY2pzJztcbmV4cG9ydCB0eXBlIHsgTGliUmVzb2x2ZXIgfSBmcm9tICcuL2xpYi1yZWdpc3RyeS5janMnO1xuZXhwb3J0IHsgcmVnaXN0ZXJMaWJSZXNvbHZlciB9IGZyb20gJy4vbGliLXJlZ2lzdHJ5LmNqcyc7XG5leHBvcnQgdHlwZSB7XG4gIE9ic2lkaWFuUnVudGltZVZlcnNpb25zLFxuICBPYnNpZGlhblZlcnNpb25DaGFuZ2Vsb2dVcmxzLFxuICBPYnNpZGlhblZlcnNpb25Eb3dubG9hZHMsXG4gIE9ic2lkaWFuVmVyc2lvbk1ldGFkYXRhXG59IGZyb20gJy4vb2JzaWRpYW4tbWV0YWRhdGEuY2pzJztcbmV4cG9ydCB7IGdldFZlcnNpb25NZXRhZGF0YSB9IGZyb20gJy4vb2JzaWRpYW4tbWV0YWRhdGEuY2pzJztcbmV4cG9ydCB7XG4gIENBVEFMWVNUX0xBVEVTVCxcbiAgUFVCTElDX0xBVEVTVFxufSBmcm9tICcuL29ic2lkaWFuLXZlcnNpb24uY2pzJztcbmV4cG9ydCB0eXBlIHsgT3Blbk9ic2lkaWFuU2V0dGluZ3NUYWJQYXJhbXMgfSBmcm9tICcuL29wZW4tb2JzaWRpYW4tc2V0dGluZ3MtdGFiLmNqcyc7XG5leHBvcnQgeyBvcGVuT2JzaWRpYW5TZXR0aW5nc1RhYiB9IGZyb20gJy4vb3Blbi1vYnNpZGlhbi1zZXR0aW5ncy10YWIuY2pzJztcbmV4cG9ydCB0eXBlIHsgT3duZWRJbnN0YW5jZUV4aXRlZEVycm9yQ29uc3RydWN0b3JQYXJhbXMgfSBmcm9tICcuL293bmVkLWluc3RhbmNlLWV4aXRlZC1lcnJvci5janMnO1xuZXhwb3J0IHsgT3duZWRJbnN0YW5jZUV4aXRlZEVycm9yIH0gZnJvbSAnLi9vd25lZC1pbnN0YW5jZS1leGl0ZWQtZXJyb3IuY2pzJztcbmV4cG9ydCB0eXBlIHsgUG9sbEluT2JzaWRpYW5QYXJhbXMgfSBmcm9tICcuL3BvbGwtaW4tb2JzaWRpYW4uY2pzJztcbmV4cG9ydCB7IHBvbGxJbk9ic2lkaWFuIH0gZnJvbSAnLi9wb2xsLWluLW9ic2lkaWFuLmNqcyc7XG5leHBvcnQgeyBSZW5kZXJlckZhaWxlZFRvSW5pdGlhbGl6ZUVycm9yIH0gZnJvbSAnLi9yZW5kZXJlci1mYWlsZWQtdG8taW5pdGlhbGl6ZS1lcnJvci5janMnO1xuZXhwb3J0IHR5cGUgeyBSZXNvbHZlRW11bGF0b3JEZXZpY2VJZFBhcmFtcyB9IGZyb20gJy4vcmVzb2x2ZS1lbXVsYXRvci1kZXZpY2UtaWQuY2pzJztcbmV4cG9ydCB7IHJlc29sdmVFbXVsYXRvckRldmljZUlkIH0gZnJvbSAnLi9yZXNvbHZlLWVtdWxhdG9yLWRldmljZS1pZC5janMnO1xuZXhwb3J0IHR5cGUgeyBSdW5PYnNpZGlhblZlcnNpb25NYXRyaXhQYXJhbXMgfSBmcm9tICcuL3J1bi12ZXJzaW9uLW1hdHJpeC5janMnO1xuZXhwb3J0IHsgcnVuT2JzaWRpYW5WZXJzaW9uTWF0cml4IH0gZnJvbSAnLi9ydW4tdmVyc2lvbi1tYXRyaXguY2pzJztcbmV4cG9ydCB0eXBlIHsgU2lsZW50QXNhckZhbGxiYWNrRXJyb3JDb25zdHJ1Y3RvclBhcmFtcyB9IGZyb20gJy4vc2lsZW50LWFzYXItZmFsbGJhY2stZXJyb3IuY2pzJztcbmV4cG9ydCB7IFNpbGVudEFzYXJGYWxsYmFja0Vycm9yIH0gZnJvbSAnLi9zaWxlbnQtYXNhci1mYWxsYmFjay1lcnJvci5janMnO1xuZXhwb3J0IHR5cGUge1xuICBCdWlsZFNvZnRLZXlib2FyZERpYWdub3N0aWNNZXNzYWdlUGFyYW1zLFxuICBDaGVja0lzU29mdEtleWJvYXJkVXBQYXJhbXMsXG4gIEVsZW1lbnRSZWN0LFxuICBSZXNvbHZlU29mdEtleWJvYXJkVGFwUG9pbnRzUGFyYW1zLFxuICBTb2Z0S2V5Ym9hcmRUYXBQb2ludCxcbiAgU29mdEtleWJvYXJkVmlld3BvcnRTbmFwc2hvdFxufSBmcm9tICcuL3NvZnQta2V5Ym9hcmQtZ2VvbWV0cnkuY2pzJztcbmV4cG9ydCB7XG4gIGJ1aWxkU29mdEtleWJvYXJkRGlhZ25vc3RpY01lc3NhZ2UsXG4gIGNoZWNrSXNTb2Z0S2V5Ym9hcmRVcCxcbiAgREVGQVVMVF9NSU5JTVVNX0tFWUJPQVJEX0hFSUdIVF9JTl9QSVhFTFMsXG4gIHBhcnNlSW5wdXRNZXRob2RTdGF0ZSxcbiAgcmVzb2x2ZVNvZnRLZXlib2FyZFRhcFBvaW50c1xufSBmcm9tICcuL3NvZnQta2V5Ym9hcmQtZ2VvbWV0cnkuY2pzJztcbmV4cG9ydCB0eXBlIHtcbiAgUmFpc2VTb2Z0S2V5Ym9hcmRQYXJhbXMsXG4gIFRhcERldmljZVBhcmFtc1xufSBmcm9tICcuL3NvZnQta2V5Ym9hcmQuY2pzJztcbmV4cG9ydCB7XG4gIHJhaXNlU29mdEtleWJvYXJkLFxuICB0YXBEZXZpY2Vcbn0gZnJvbSAnLi9zb2Z0LWtleWJvYXJkLmNqcyc7XG5leHBvcnQgdHlwZSB7XG4gIFBvcHVsYXRlRmlsZUNvbnRlbnQsXG4gIFBvcHVsYXRlRmlsZXNQYXJhbXMsXG4gIFRlbXBvcmFyeVZhdWx0Q29uc3RydWN0b3JPcHRpb25zXG59IGZyb20gJy4vdGVtcG9yYXJ5LXZhdWx0LmNqcyc7XG5leHBvcnQgeyBUZW1wb3JhcnlWYXVsdCB9IGZyb20gJy4vdGVtcG9yYXJ5LXZhdWx0LmNqcyc7XG5leHBvcnQgdHlwZSB7XG4gIEFwcGl1bVNlc3Npb25JbmZvLFxuICBBcHBpdW1UcmFuc3BvcnRDb25maWdcbn0gZnJvbSAnLi90cmFuc3BvcnQtYXBwaXVtLmNqcyc7XG5leHBvcnQgeyBBcHBpdW1UcmFuc3BvcnQgfSBmcm9tICcuL3RyYW5zcG9ydC1hcHBpdW0uY2pzJztcbmV4cG9ydCB0eXBlIHtcbiAgRGVza3RvcENkcFRyYW5zcG9ydENvbmZpZyxcbiAgT3duZWRJbnN0YW5jZUFzYXIsXG4gIE93bmVkSW5zdGFuY2VDb25maWcsXG4gIE93bmVkSW5zdGFuY2VFbmRwb2ludFxufSBmcm9tICcuL3RyYW5zcG9ydC1kZXNrdG9wLWNkcC5janMnO1xuZXhwb3J0IHsgRGVza3RvcENkcFRyYW5zcG9ydCB9IGZyb20gJy4vdHJhbnNwb3J0LWRlc2t0b3AtY2RwLmNqcyc7XG5leHBvcnQgeyBjcmVhdGVUcmFuc3BvcnRGcm9tT3B0aW9ucyB9IGZyb20gJy4vdHJhbnNwb3J0LWZhY3RvcnkuY2pzJztcbmV4cG9ydCB0eXBlIHtcbiAgT2JzaWRpYW5BbmRyb2lkQXBwaXVtVHJhbnNwb3J0T3B0aW9ucyxcbiAgT2JzaWRpYW5DZHBUcmFuc3BvcnRPcHRpb25zLFxuICBPYnNpZGlhblRyYW5zcG9ydE9wdGlvbnNcbn0gZnJvbSAnLi90cmFuc3BvcnQtb3B0aW9ucy5janMnO1xuZXhwb3J0IHsgY2hlY2tJc01vYmlsZVRyYW5zcG9ydCB9IGZyb20gJy4vdHJhbnNwb3J0LW9wdGlvbnMuY2pzJztcbmV4cG9ydCB0eXBlIHtcbiAgQ29uc29sZUNhcHR1cmVIYW5kbGUsXG4gIE9ic2lkaWFuVHJhbnNwb3J0LFxuICBUcmFuc3BvcnRFdmFsT3B0aW9uc1xufSBmcm9tICcuL3RyYW5zcG9ydC5janMnO1xuZXhwb3J0IHtcbiAgcmVnaXN0ZXJWYXVsdCxcbiAgdW5yZWdpc3RlclZhdWx0XG59IGZyb20gJy4vdmF1bHQtcmVnaXN0cnkuY2pzJztcbmV4cG9ydCB0eXBlIHsgT2JzaWRpYW5WZXJzaW9uTWF0cml4RW50cnkgfSBmcm9tICcuL3ZlcnNpb24tbWF0cml4LmNqcyc7XG5leHBvcnQgeyBERUZBVUxUX09CU0lESUFOX1ZFUlNJT05fU1BFQ1MgfSBmcm9tICcuL3ZlcnNpb24tbWF0cml4LmNqcyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0EsaUJBSU87QUFPUCx3QkFLTztBQU1QLHFDQUFvQztBQUVwQyx5Q0FBMEM7QUFLMUMsZ0NBS087QUFFUCx1Q0FBdUM7QUFFdkMsNkNBQTZDO0FBQzdDLDhCQUdPO0FBS1AsNEJBQTZCO0FBSzdCLHdCQUEwQjtBQU0xQiw4QkFJTztBQU9QLGtDQUdPO0FBTVAsaUNBR087QUFFUCw2QkFBa0M7QUFDbEMsNENBQTJDO0FBRTNDLCtCQUF3QztBQU14QyxvQ0FHTztBQUVQLHFDQUlPO0FBTVAsNkJBS087QUFNUCxvQ0FBNkM7QUFLN0MsZ0NBQXVDO0FBRXZDLHFDQUdPO0FBQ1Asc0JBQWlEO0FBa0JqRCw4QkFBK0I7QUFNL0IsNEJBR087QUFFUCxrREFBa0Q7QUFNbEQscUNBQThDO0FBRTlDLDRDQUE0QztBQU01Qyw4QkFLTztBQUVQLDBCQUFvQztBQU9wQywrQkFBbUM7QUFDbkMsOEJBR087QUFFUCx3Q0FBd0M7QUFFeEMseUNBQXlDO0FBRXpDLDhCQUErQjtBQUMvQixpREFBZ0Q7QUFFaEQsd0NBQXdDO0FBRXhDLGdDQUF5QztBQUV6Qyx3Q0FBd0M7QUFTeEMsb0NBTU87QUFLUCwyQkFHTztBQU1QLDZCQUErQjtBQUsvQiw4QkFBZ0M7QUFPaEMsbUNBQW9DO0FBQ3BDLCtCQUEyQztBQU0zQywrQkFBdUM7QUFNdkMsNEJBR087QUFFUCw0QkFBK0M7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
240
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQ29udGFpbnMgdGhlIGVudHJ5IHBvaW50IGZvciB0aGUgaW50ZWdyYXRpb24gdGVzdGluZyBtb2R1bGUuXG4gKi9cblxuZXhwb3J0IHR5cGUgeyBSdW5BZGJQYXJhbXMgfSBmcm9tICcuL2FkYi5janMnO1xuZXhwb3J0IHtcbiAgcnVuQWRiQmluYXJ5LFxuICBydW5BZGJUZXh0LFxuICBydW5BZGJUZXh0V2l0aG91dERldmljZVxufSBmcm9tICcuL2FkYi5janMnO1xuZXhwb3J0IHR5cGUge1xuICBBcHBDb25maWdSZXN0b3JlLFxuICBHZXRBcHBDb25maWdQYXJhbXMsXG4gIFNldEFwcENvbmZpZ1BhcmFtcyxcbiAgV2l0aEFwcENvbmZpZ1BhcmFtc1xufSBmcm9tICcuL2FwcC1jb25maWcuY2pzJztcbmV4cG9ydCB7XG4gIGdldEFwcENvbmZpZyxcbiAgcmVzdG9yZUFwcENvbmZpZyxcbiAgc2V0QXBwQ29uZmlnLFxuICB3aXRoQXBwQ29uZmlnXG59IGZyb20gJy4vYXBwLWNvbmZpZy5janMnO1xuZXhwb3J0IHR5cGUge1xuICBBc2FyRmFsbGJhY2ssXG4gIEFzYXJGYWxsYmFja1RpZXIsXG4gIFJlc29sdmVBc2FyRmFsbGJhY2tQYXJhbXNcbn0gZnJvbSAnLi9hc2FyLWZhbGxiYWNrLWRldGVjdGlvbi5janMnO1xuZXhwb3J0IHsgcmVzb2x2ZUFzYXJGYWxsYmFjayB9IGZyb20gJy4vYXNhci1mYWxsYmFjay1kZXRlY3Rpb24uY2pzJztcbmV4cG9ydCB0eXBlIHsgQ2FwdHVyZU9ic2lkaWFuU2NyZWVuc2hvdE9wdGlvbnMgfSBmcm9tICcuL2NhcHR1cmUtb2JzaWRpYW4tc2NyZWVuc2hvdC5janMnO1xuZXhwb3J0IHsgY2FwdHVyZU9ic2lkaWFuU2NyZWVuc2hvdCB9IGZyb20gJy4vY2FwdHVyZS1vYnNpZGlhbi1zY3JlZW5zaG90LmNqcyc7XG5leHBvcnQgdHlwZSB7XG4gIENhcHR1cmVTY3JlZW5zaG90UGFyYW1zLFxuICBQbmdEaW1lbnNpb25zXG59IGZyb20gJy4vY2FwdHVyZS1zY3JlZW5zaG90LmNqcyc7XG5leHBvcnQge1xuICBidWlsZERldmljZU1ldHJpY3NPdmVycmlkZSxcbiAgZGVjb2RlQmFzZTY0UG5nLFxuICBpc1BuZyxcbiAgcmVhZFBuZ0RpbWVuc2lvbnNcbn0gZnJvbSAnLi9jYXB0dXJlLXNjcmVlbnNob3QuY2pzJztcbmV4cG9ydCB0eXBlIHsgQ2RwQ29tbWFuZFRpbWVvdXRFcnJvckNvbnN0cnVjdG9yUGFyYW1zIH0gZnJvbSAnLi9jZHAtY29tbWFuZC10aW1lb3V0LWVycm9yLmNqcyc7XG5leHBvcnQgeyBDZHBDb21tYW5kVGltZW91dEVycm9yIH0gZnJvbSAnLi9jZHAtY29tbWFuZC10aW1lb3V0LWVycm9yLmNqcyc7XG5leHBvcnQgdHlwZSB7IENvbmZpZ0RpcmVjdG9yeUZhbGxiYWNrRXJyb3JDb25zdHJ1Y3RvclBhcmFtcyB9IGZyb20gJy4vY29uZmlnLWRpcmVjdG9yeS1mYWxsYmFjay1lcnJvci5janMnO1xuZXhwb3J0IHsgQ29uZmlnRGlyZWN0b3J5RmFsbGJhY2tFcnJvciB9IGZyb20gJy4vY29uZmlnLWRpcmVjdG9yeS1mYWxsYmFjay1lcnJvci5janMnO1xuZXhwb3J0IHtcbiAgYXNzZXJ0VmFsaWRDb25maWdEaXJlY3RvcnksXG4gIERFRkFVTFRfQ09ORklHX0RJUkVDVE9SWVxufSBmcm9tICcuL2NvbmZpZy1kaXJlY3RvcnkuY2pzJztcbmV4cG9ydCB0eXBlIHtcbiAgQ2RwQ29ubmVjdGlvbixcbiAgQ29ubmVjdFRvQ2RwT3B0aW9uc1xufSBmcm9tICcuL2Nvbm5lY3QtdG8tY2RwLmNqcyc7XG5leHBvcnQgeyBjb25uZWN0VG9DZHAgfSBmcm9tICcuL2Nvbm5lY3QtdG8tY2RwLmNqcyc7XG5leHBvcnQgdHlwZSB7XG4gIENvbnRleHRBcmd1bWVudHMsXG4gIENvbnRleHRPZlxufSBmcm9tICcuL2NvbnRleHQtaWQuY2pzJztcbmV4cG9ydCB7IENvbnRleHRJZCB9IGZyb20gJy4vY29udGV4dC1pZC5janMnO1xuZXhwb3J0IHR5cGUge1xuICBTZXR1cEVycm9yUmVzb2x2ZXIsXG4gIFRyYW5zcG9ydE9wdGlvbnNSZXNvbHZlcixcbiAgVmF1bHRQYXRoUmVzb2x2ZXJcbn0gZnJvbSAnLi9jb250ZXh0LXByb3ZpZGVyLmNqcyc7XG5leHBvcnQge1xuICBzZXRTZXR1cEVycm9yUmVzb2x2ZXIsXG4gIHNldFRyYW5zcG9ydE9wdGlvbnNSZXNvbHZlcixcbiAgc2V0VmF1bHRQYXRoUmVzb2x2ZXJcbn0gZnJvbSAnLi9jb250ZXh0LXByb3ZpZGVyLmNqcyc7XG5leHBvcnQgdHlwZSB7XG4gIEJvb3RzdHJhcERlbW9WYXVsdFBsdWdpbnNQYXJhbXMsXG4gIEJvb3RzdHJhcERlbW9WYXVsdFBsdWdpbnNSZXN1bHQsXG4gIEJ1aWxkRGVtb1ZhdWx0UG9wdWxhdGVBc3luY1BhcmFtcyxcbiAgSW5zdGFsbGVkUGx1Z2luSW5mb1xufSBmcm9tICcuL2RlbW8tdmF1bHQtYm9vdHN0cmFwLmNqcyc7XG5leHBvcnQge1xuICBib290c3RyYXBEZW1vVmF1bHRQbHVnaW5zLFxuICBidWlsZERlbW9WYXVsdFBvcHVsYXRlQXN5bmNcbn0gZnJvbSAnLi9kZW1vLXZhdWx0LWJvb3RzdHJhcC5janMnO1xuZXhwb3J0IHR5cGUge1xuICBCdWlsZERlbW9WYXVsdFBvcHVsYXRlUGFyYW1zLFxuICBJbmplY3RQbHVnaW5QYXJhbXMsXG4gIFJlc29sdmVNaXNzaW5nSW5qZWN0ZWRQbHVnaW5zUGFyYW1zXG59IGZyb20gJy4vZGVtby12YXVsdC1wb3B1bGF0ZS5janMnO1xuZXhwb3J0IHtcbiAgYnVpbGREZW1vVmF1bHRQb3B1bGF0ZSxcbiAgcmVzb2x2ZU1pc3NpbmdJbmplY3RlZFBsdWdpbnNcbn0gZnJvbSAnLi9kZW1vLXZhdWx0LXBvcHVsYXRlLmNqcyc7XG5leHBvcnQgdHlwZSB7IFJlYWREZW1vVmF1bHRUcmVlUGFyYW1zIH0gZnJvbSAnLi9kZW1vLXZhdWx0LXRyZWUuY2pzJztcbmV4cG9ydCB7IHJlYWREZW1vVmF1bHRUcmVlIH0gZnJvbSAnLi9kZW1vLXZhdWx0LXRyZWUuY2pzJztcbmV4cG9ydCB7IERlc2t0b3BPbmx5UGx1Z2luU2tpcEVycm9yIH0gZnJvbSAnLi9kZXNrdG9wLW9ubHktcGx1Z2luLXNraXAtZXJyb3IuY2pzJztcbmV4cG9ydCB0eXBlIHsgQ2FwdHVyZURldmljZVNjcmVlbnNob3RQYXJhbXMgfSBmcm9tICcuL2RldmljZS1zY3JlZW5zaG90LmNqcyc7XG5leHBvcnQgeyBjYXB0dXJlRGV2aWNlU2NyZWVuc2hvdCB9IGZyb20gJy4vZGV2aWNlLXNjcmVlbnNob3QuY2pzJztcbmV4cG9ydCB0eXBlIHtcbiAgRGV2aWNlU2V0dGluZ1Jlc3RvcmUsXG4gIERldmljZVNldHRpbmdSZXN0b3JlRGVsZXRlLFxuICBEZXZpY2VTZXR0aW5nUmVzdG9yZVdyaXRlXG59IGZyb20gJy4vZGV2aWNlLXNldHRpbmctcmVzdG9yZS5janMnO1xuZXhwb3J0IHtcbiAgRGV2aWNlU2V0dGluZ1Jlc3RvcmVLaW5kLFxuICByZXNvbHZlRGV2aWNlU2V0dGluZ1Jlc3RvcmVcbn0gZnJvbSAnLi9kZXZpY2Utc2V0dGluZy1yZXN0b3JlLmNqcyc7XG5leHBvcnQgdHlwZSB7IEJ1aWxkRGV2aWNlU2V0dGluZ3NDb21tYW5kQXJndW1lbnRzUGFyYW1zIH0gZnJvbSAnLi9kZXZpY2Utc2V0dGluZ3MtY29tbWFuZC5janMnO1xuZXhwb3J0IHtcbiAgYnVpbGREZXZpY2VTZXR0aW5nc0NvbW1hbmRBcmd1bWVudHMsXG4gIERldmljZVNldHRpbmdOYW1lc3BhY2UsXG4gIERldmljZVNldHRpbmdWZXJiXG59IGZyb20gJy4vZGV2aWNlLXNldHRpbmdzLWNvbW1hbmQuY2pzJztcbmV4cG9ydCB0eXBlIHtcbiAgRGV2aWNlU2V0dGluZ1BhcmFtcyxcbiAgV2l0aFNvZnRLZXlib2FyZEVuYWJsZWRQYXJhbXMsXG4gIFdyaXRlRGV2aWNlU2V0dGluZ1BhcmFtc1xufSBmcm9tICcuL2RldmljZS1zZXR0aW5ncy5janMnO1xuZXhwb3J0IHtcbiAgZGVsZXRlRGV2aWNlU2V0dGluZyxcbiAgcmVhZERldmljZVNldHRpbmcsXG4gIHdpdGhTb2Z0S2V5Ym9hcmRFbmFibGVkLFxuICB3cml0ZURldmljZVNldHRpbmdcbn0gZnJvbSAnLi9kZXZpY2Utc2V0dGluZ3MuY2pzJztcbmV4cG9ydCB0eXBlIHtcbiAgRWxlY3Ryb25Db21wYXRpYmlsaXR5LFxuICBFbGVjdHJvbkNvbXBhdGliaWxpdHlUaWVyLFxuICBSZXNvbHZlRWxlY3Ryb25Db21wYXRpYmlsaXR5UGFyYW1zXG59IGZyb20gJy4vZWxlY3Ryb24tY29tcGF0aWJpbGl0eS5janMnO1xuZXhwb3J0IHsgcmVzb2x2ZUVsZWN0cm9uQ29tcGF0aWJpbGl0eSB9IGZyb20gJy4vZWxlY3Ryb24tY29tcGF0aWJpbGl0eS5janMnO1xuZXhwb3J0IHR5cGUge1xuICBFbXVsYXRvckRldmljZUNhbmRpZGF0ZSxcbiAgU2VsZWN0RW11bGF0b3JEZXZpY2VJZFBhcmFtc1xufSBmcm9tICcuL2VtdWxhdG9yLWRldmljZS1pZC5janMnO1xuZXhwb3J0IHsgc2VsZWN0RW11bGF0b3JEZXZpY2VJZCB9IGZyb20gJy4vZW11bGF0b3ItZGV2aWNlLWlkLmNqcyc7XG5leHBvcnQgdHlwZSB7IEV2YWxDYXBFeGNlZWRlZEVycm9yQ29uc3RydWN0b3JQYXJhbXMgfSBmcm9tICcuL2V2YWwtY2FwLWV4Y2VlZGVkLWVycm9yLmNqcyc7XG5leHBvcnQge1xuICBFdmFsQ2FwRXhjZWVkZWRFcnJvcixcbiAgaXNTY3JpcHRUaW1lb3V0RXJyb3Jcbn0gZnJvbSAnLi9ldmFsLWNhcC1leGNlZWRlZC1lcnJvci5janMnO1xuZXhwb3J0IHsgREVGQVVMVF9FVkFMX0NBUF9JTl9NSUxMSVNFQ09ORFMgfSBmcm9tICcuL2V2YWwtY2FwLmNqcyc7XG5leHBvcnQgdHlwZSB7XG4gIENsaWNrRWxlbWVudFBhcmFtcyxcbiAgQ2xpY2tNb3VzZVBhcmFtcyxcbiAgQ29tbW9uQXJndW1lbnRzLFxuICBDcmVhdGVOb3RlUGFyYW1zLFxuICBFdmFsSW5PYnNpZGlhblBhcmFtcyxcbiAgR2VuZXJpY09iamVjdCxcbiAgSG92ZXJFbGVtZW50UGFyYW1zLFxuICBMaWIsXG4gIE1vdXNlQnV0dG9uLFxuICBNb3ZlTW91c2VQYXJhbXMsXG4gIE9wZW5TZXR0aW5nc1RhYlBhcmFtcyxcbiAgUHJlc3NLZXlQYXJhbXMsXG4gIFR5cGVJbnRvRWRpdG9yUGFyYW1zLFxuICBVbmhvdmVyRWxlbWVudFBhcmFtcyxcbiAgV2FpdFVudGlsUGFyYW1zXG59IGZyb20gJy4vZXZhbC1pbi1vYnNpZGlhbi5janMnO1xuZXhwb3J0IHsgZXZhbEluT2JzaWRpYW4gfSBmcm9tICcuL2V2YWwtaW4tb2JzaWRpYW4uY2pzJztcbmV4cG9ydCB0eXBlIHtcbiAgQ29tcHV0ZUZpdFRvQ2FudmFzUGFyYW1zLFxuICBGaXRTY3JlZW5zaG90VG9DYW52YXNPcHRpb25zLFxuICBGaXRUb0NhbnZhc0dlb21ldHJ5XG59IGZyb20gJy4vZml0LXNjcmVlbnNob3QuY2pzJztcbmV4cG9ydCB7XG4gIGNvbXB1dGVGaXRUb0NhbnZhcyxcbiAgZml0U2NyZWVuc2hvdFRvQ2FudmFzXG59IGZyb20gJy4vZml0LXNjcmVlbnNob3QuY2pzJztcbmV4cG9ydCB0eXBlIHsgSGlkZVZhdWx0TmFtZU9wdGlvbnMgfSBmcm9tICcuL2hpZGUtdmF1bHQtbmFtZS5janMnO1xuZXhwb3J0IHsgaGlkZVZhdWx0TmFtZSB9IGZyb20gJy4vaGlkZS12YXVsdC1uYW1lLmNqcyc7XG5leHBvcnQgdHlwZSB7IEluY29tcGF0aWJsZUluc3RhbGxlclZlcnNpb25FcnJvckNvbnN0cnVjdG9yUGFyYW1zIH0gZnJvbSAnLi9pbmNvbXBhdGlibGUtaW5zdGFsbGVyLXZlcnNpb24tZXJyb3IuY2pzJztcbmV4cG9ydCB7IEluY29tcGF0aWJsZUluc3RhbGxlclZlcnNpb25FcnJvciB9IGZyb20gJy4vaW5jb21wYXRpYmxlLWluc3RhbGxlci12ZXJzaW9uLWVycm9yLmNqcyc7XG5leHBvcnQgdHlwZSB7XG4gIEluc3RhbGxlckNvbXBhdGliaWxpdHksXG4gIEluc3RhbGxlckNvbXBhdGliaWxpdHlUaWVyLFxuICBSZXNvbHZlSW5zdGFsbGVyQ29tcGF0aWJpbGl0eVBhcmFtc1xufSBmcm9tICcuL2luc3RhbGxlci1jb21wYXRpYmlsaXR5LmNqcyc7XG5leHBvcnQgeyByZXNvbHZlSW5zdGFsbGVyQ29tcGF0aWJpbGl0eSB9IGZyb20gJy4vaW5zdGFsbGVyLWNvbXBhdGliaWxpdHkuY2pzJztcbmV4cG9ydCB0eXBlIHsgSW50ZWdyYXRpb25TZXR1cEZhaWxlZEVycm9yQ29uc3RydWN0b3JQYXJhbXMgfSBmcm9tICcuL2ludGVncmF0aW9uLXNldHVwLWZhaWxlZC1lcnJvci5janMnO1xuZXhwb3J0IHsgSW50ZWdyYXRpb25TZXR1cEZhaWxlZEVycm9yIH0gZnJvbSAnLi9pbnRlZ3JhdGlvbi1zZXR1cC1mYWlsZWQtZXJyb3IuY2pzJztcbmV4cG9ydCB0eXBlIHtcbiAgQ29tcHV0ZUxhYmVsQmFuZFBhcmFtcyxcbiAgTGFiZWxCYW5kR2VvbWV0cnksXG4gIExhYmVsQ2FwdGlvbk1lYXN1cmVtZW50LFxuICBMYWJlbFNjcmVlbnNob3RPcHRpb25zLFxuICBNZWFzdXJlTGFiZWxDYXB0aW9uUGFyYW1zXG59IGZyb20gJy4vbGFiZWwtc2NyZWVuc2hvdC5janMnO1xuZXhwb3J0IHtcbiAgYnVpbGRMYWJlbFN2ZyxcbiAgY29tcHV0ZUxhYmVsQmFuZCxcbiAgZXNjYXBlU3ZnVGV4dCxcbiAgbGFiZWxTY3JlZW5zaG90LFxuICBtZWFzdXJlTGFiZWxDYXB0aW9uXG59IGZyb20gJy4vbGFiZWwtc2NyZWVuc2hvdC5janMnO1xuZXhwb3J0IHR5cGUgeyBMaWJSZXNvbHZlciB9IGZyb20gJy4vbGliLXJlZ2lzdHJ5LmNqcyc7XG5leHBvcnQgeyByZWdpc3RlckxpYlJlc29sdmVyIH0gZnJvbSAnLi9saWItcmVnaXN0cnkuY2pzJztcbmV4cG9ydCB0eXBlIHtcbiAgT2JzaWRpYW5SdW50aW1lVmVyc2lvbnMsXG4gIE9ic2lkaWFuVmVyc2lvbkNoYW5nZWxvZ1VybHMsXG4gIE9ic2lkaWFuVmVyc2lvbkRvd25sb2FkcyxcbiAgT2JzaWRpYW5WZXJzaW9uTWV0YWRhdGFcbn0gZnJvbSAnLi9vYnNpZGlhbi1tZXRhZGF0YS5janMnO1xuZXhwb3J0IHsgZ2V0VmVyc2lvbk1ldGFkYXRhIH0gZnJvbSAnLi9vYnNpZGlhbi1tZXRhZGF0YS5janMnO1xuZXhwb3J0IHtcbiAgQ0FUQUxZU1RfTEFURVNULFxuICBQVUJMSUNfTEFURVNUXG59IGZyb20gJy4vb2JzaWRpYW4tdmVyc2lvbi5janMnO1xuZXhwb3J0IHR5cGUgeyBPcGVuT2JzaWRpYW5TZXR0aW5nc1RhYlBhcmFtcyB9IGZyb20gJy4vb3Blbi1vYnNpZGlhbi1zZXR0aW5ncy10YWIuY2pzJztcbmV4cG9ydCB7IG9wZW5PYnNpZGlhblNldHRpbmdzVGFiIH0gZnJvbSAnLi9vcGVuLW9ic2lkaWFuLXNldHRpbmdzLXRhYi5janMnO1xuZXhwb3J0IHR5cGUgeyBPd25lZEluc3RhbmNlRXhpdGVkRXJyb3JDb25zdHJ1Y3RvclBhcmFtcyB9IGZyb20gJy4vb3duZWQtaW5zdGFuY2UtZXhpdGVkLWVycm9yLmNqcyc7XG5leHBvcnQgeyBPd25lZEluc3RhbmNlRXhpdGVkRXJyb3IgfSBmcm9tICcuL293bmVkLWluc3RhbmNlLWV4aXRlZC1lcnJvci5janMnO1xuZXhwb3J0IHR5cGUgeyBQb2xsSW5PYnNpZGlhblBhcmFtcyB9IGZyb20gJy4vcG9sbC1pbi1vYnNpZGlhbi5janMnO1xuZXhwb3J0IHsgcG9sbEluT2JzaWRpYW4gfSBmcm9tICcuL3BvbGwtaW4tb2JzaWRpYW4uY2pzJztcbmV4cG9ydCB7IFJlbmRlcmVyRmFpbGVkVG9Jbml0aWFsaXplRXJyb3IgfSBmcm9tICcuL3JlbmRlcmVyLWZhaWxlZC10by1pbml0aWFsaXplLWVycm9yLmNqcyc7XG5leHBvcnQgdHlwZSB7IFJlc29sdmVFbXVsYXRvckRldmljZUlkUGFyYW1zIH0gZnJvbSAnLi9yZXNvbHZlLWVtdWxhdG9yLWRldmljZS1pZC5janMnO1xuZXhwb3J0IHsgcmVzb2x2ZUVtdWxhdG9yRGV2aWNlSWQgfSBmcm9tICcuL3Jlc29sdmUtZW11bGF0b3ItZGV2aWNlLWlkLmNqcyc7XG5leHBvcnQgdHlwZSB7IFJ1bk9ic2lkaWFuVmVyc2lvbk1hdHJpeFBhcmFtcyB9IGZyb20gJy4vcnVuLXZlcnNpb24tbWF0cml4LmNqcyc7XG5leHBvcnQgeyBydW5PYnNpZGlhblZlcnNpb25NYXRyaXggfSBmcm9tICcuL3J1bi12ZXJzaW9uLW1hdHJpeC5janMnO1xuZXhwb3J0IHR5cGUgeyBTaWxlbnRBc2FyRmFsbGJhY2tFcnJvckNvbnN0cnVjdG9yUGFyYW1zIH0gZnJvbSAnLi9zaWxlbnQtYXNhci1mYWxsYmFjay1lcnJvci5janMnO1xuZXhwb3J0IHsgU2lsZW50QXNhckZhbGxiYWNrRXJyb3IgfSBmcm9tICcuL3NpbGVudC1hc2FyLWZhbGxiYWNrLWVycm9yLmNqcyc7XG5leHBvcnQgdHlwZSB7XG4gIEJ1aWxkU29mdEtleWJvYXJkRGlhZ25vc3RpY01lc3NhZ2VQYXJhbXMsXG4gIENoZWNrSXNTb2Z0S2V5Ym9hcmRVcFBhcmFtcyxcbiAgRWxlbWVudFJlY3QsXG4gIFJlc29sdmVTb2Z0S2V5Ym9hcmRUYXBQb2ludHNQYXJhbXMsXG4gIFNvZnRLZXlib2FyZFRhcFBvaW50LFxuICBTb2Z0S2V5Ym9hcmRWaWV3cG9ydFNuYXBzaG90XG59IGZyb20gJy4vc29mdC1rZXlib2FyZC1nZW9tZXRyeS5janMnO1xuZXhwb3J0IHtcbiAgYnVpbGRTb2Z0S2V5Ym9hcmREaWFnbm9zdGljTWVzc2FnZSxcbiAgY2hlY2tJc1NvZnRLZXlib2FyZFVwLFxuICBERUZBVUxUX01JTklNVU1fS0VZQk9BUkRfSEVJR0hUX0lOX1BJWEVMUyxcbiAgcGFyc2VJbnB1dE1ldGhvZFN0YXRlLFxuICByZXNvbHZlU29mdEtleWJvYXJkVGFwUG9pbnRzXG59IGZyb20gJy4vc29mdC1rZXlib2FyZC1nZW9tZXRyeS5janMnO1xuZXhwb3J0IHR5cGUge1xuICBSYWlzZVNvZnRLZXlib2FyZFBhcmFtcyxcbiAgVGFwRGV2aWNlUGFyYW1zXG59IGZyb20gJy4vc29mdC1rZXlib2FyZC5janMnO1xuZXhwb3J0IHtcbiAgcmFpc2VTb2Z0S2V5Ym9hcmQsXG4gIHRhcERldmljZVxufSBmcm9tICcuL3NvZnQta2V5Ym9hcmQuY2pzJztcbmV4cG9ydCB0eXBlIHsgU3RhbGVCdWlsZEVycm9yQ29uc3RydWN0b3JQYXJhbXMgfSBmcm9tICcuL3N0YWxlLWJ1aWxkLWVycm9yLmNqcyc7XG5leHBvcnQgeyBTdGFsZUJ1aWxkRXJyb3IgfSBmcm9tICcuL3N0YWxlLWJ1aWxkLWVycm9yLmNqcyc7XG5leHBvcnQgdHlwZSB7XG4gIFBvcHVsYXRlRmlsZUNvbnRlbnQsXG4gIFBvcHVsYXRlRmlsZXNQYXJhbXMsXG4gIFRlbXBvcmFyeVZhdWx0Q29uc3RydWN0b3JPcHRpb25zXG59IGZyb20gJy4vdGVtcG9yYXJ5LXZhdWx0LmNqcyc7XG5leHBvcnQgeyBUZW1wb3JhcnlWYXVsdCB9IGZyb20gJy4vdGVtcG9yYXJ5LXZhdWx0LmNqcyc7XG5leHBvcnQgdHlwZSB7XG4gIEFwcGl1bVNlc3Npb25JbmZvLFxuICBBcHBpdW1UcmFuc3BvcnRDb25maWdcbn0gZnJvbSAnLi90cmFuc3BvcnQtYXBwaXVtLmNqcyc7XG5leHBvcnQgeyBBcHBpdW1UcmFuc3BvcnQgfSBmcm9tICcuL3RyYW5zcG9ydC1hcHBpdW0uY2pzJztcbmV4cG9ydCB0eXBlIHtcbiAgRGVza3RvcENkcFRyYW5zcG9ydENvbmZpZyxcbiAgT3duZWRJbnN0YW5jZUFzYXIsXG4gIE93bmVkSW5zdGFuY2VDb25maWcsXG4gIE93bmVkSW5zdGFuY2VFbmRwb2ludFxufSBmcm9tICcuL3RyYW5zcG9ydC1kZXNrdG9wLWNkcC5janMnO1xuZXhwb3J0IHsgRGVza3RvcENkcFRyYW5zcG9ydCB9IGZyb20gJy4vdHJhbnNwb3J0LWRlc2t0b3AtY2RwLmNqcyc7XG5leHBvcnQgeyBjcmVhdGVUcmFuc3BvcnRGcm9tT3B0aW9ucyB9IGZyb20gJy4vdHJhbnNwb3J0LWZhY3RvcnkuY2pzJztcbmV4cG9ydCB0eXBlIHtcbiAgT2JzaWRpYW5BbmRyb2lkQXBwaXVtVHJhbnNwb3J0T3B0aW9ucyxcbiAgT2JzaWRpYW5DZHBUcmFuc3BvcnRPcHRpb25zLFxuICBPYnNpZGlhblRyYW5zcG9ydE9wdGlvbnNcbn0gZnJvbSAnLi90cmFuc3BvcnQtb3B0aW9ucy5janMnO1xuZXhwb3J0IHsgY2hlY2tJc01vYmlsZVRyYW5zcG9ydCB9IGZyb20gJy4vdHJhbnNwb3J0LW9wdGlvbnMuY2pzJztcbmV4cG9ydCB0eXBlIHtcbiAgQ29uc29sZUNhcHR1cmVIYW5kbGUsXG4gIE9ic2lkaWFuVHJhbnNwb3J0LFxuICBUcmFuc3BvcnRFdmFsT3B0aW9uc1xufSBmcm9tICcuL3RyYW5zcG9ydC5janMnO1xuZXhwb3J0IHtcbiAgcmVnaXN0ZXJWYXVsdCxcbiAgdW5yZWdpc3RlclZhdWx0XG59IGZyb20gJy4vdmF1bHQtcmVnaXN0cnkuY2pzJztcbmV4cG9ydCB0eXBlIHsgT2JzaWRpYW5WZXJzaW9uTWF0cml4RW50cnkgfSBmcm9tICcuL3ZlcnNpb24tbWF0cml4LmNqcyc7XG5leHBvcnQgeyBERUZBVUxUX09CU0lESUFOX1ZFUlNJT05fU1BFQ1MgfSBmcm9tICcuL3ZlcnNpb24tbWF0cml4LmNqcyc7XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBT0EsaUJBSU87QUFPUCx3QkFLTztBQU1QLHFDQUFvQztBQUVwQyx5Q0FBMEM7QUFLMUMsZ0NBS087QUFFUCx1Q0FBdUM7QUFFdkMsNkNBQTZDO0FBQzdDLDhCQUdPO0FBS1AsNEJBQTZCO0FBSzdCLHdCQUEwQjtBQU0xQiw4QkFJTztBQU9QLGtDQUdPO0FBTVAsaUNBR087QUFFUCw2QkFBa0M7QUFDbEMsNENBQTJDO0FBRTNDLCtCQUF3QztBQU14QyxvQ0FHTztBQUVQLHFDQUlPO0FBTVAsNkJBS087QUFNUCxvQ0FBNkM7QUFLN0MsZ0NBQXVDO0FBRXZDLHFDQUdPO0FBQ1Asc0JBQWlEO0FBa0JqRCw4QkFBK0I7QUFNL0IsNEJBR087QUFFUCw2QkFBOEI7QUFFOUIsa0RBQWtEO0FBTWxELHFDQUE4QztBQUU5Qyw0Q0FBNEM7QUFRNUMsOEJBTU87QUFFUCwwQkFBb0M7QUFPcEMsK0JBQW1DO0FBQ25DLDhCQUdPO0FBRVAsd0NBQXdDO0FBRXhDLHlDQUF5QztBQUV6Qyw4QkFBK0I7QUFDL0IsaURBQWdEO0FBRWhELHdDQUF3QztBQUV4QyxnQ0FBeUM7QUFFekMsd0NBQXdDO0FBU3hDLG9DQU1PO0FBS1AsMkJBR087QUFFUCwrQkFBZ0M7QUFNaEMsNkJBQStCO0FBSy9CLDhCQUFnQztBQU9oQyxtQ0FBb0M7QUFDcEMsK0JBQTJDO0FBTTNDLCtCQUF1QztBQU12Qyw0QkFHTztBQUVQLDRCQUErQzsiLAogICJuYW1lcyI6IFtdCn0K
|
package/dist/lib/cjs/index.d.cts
CHANGED
|
@@ -50,14 +50,16 @@ export type { ClickElementParams, ClickMouseParams, CommonArguments, CreateNoteP
|
|
|
50
50
|
export { evalInObsidian } from './eval-in-obsidian.cjs';
|
|
51
51
|
export type { ComputeFitToCanvasParams, FitScreenshotToCanvasOptions, FitToCanvasGeometry } from './fit-screenshot.cjs';
|
|
52
52
|
export { computeFitToCanvas, fitScreenshotToCanvas } from './fit-screenshot.cjs';
|
|
53
|
+
export type { HideVaultNameOptions } from './hide-vault-name.cjs';
|
|
54
|
+
export { hideVaultName } from './hide-vault-name.cjs';
|
|
53
55
|
export type { IncompatibleInstallerVersionErrorConstructorParams } from './incompatible-installer-version-error.cjs';
|
|
54
56
|
export { IncompatibleInstallerVersionError } from './incompatible-installer-version-error.cjs';
|
|
55
57
|
export type { InstallerCompatibility, InstallerCompatibilityTier, ResolveInstallerCompatibilityParams } from './installer-compatibility.cjs';
|
|
56
58
|
export { resolveInstallerCompatibility } from './installer-compatibility.cjs';
|
|
57
59
|
export type { IntegrationSetupFailedErrorConstructorParams } from './integration-setup-failed-error.cjs';
|
|
58
60
|
export { IntegrationSetupFailedError } from './integration-setup-failed-error.cjs';
|
|
59
|
-
export type { ComputeLabelBandParams, LabelBandGeometry, LabelScreenshotOptions } from './label-screenshot.cjs';
|
|
60
|
-
export { buildLabelSvg, computeLabelBand, escapeSvgText, labelScreenshot } from './label-screenshot.cjs';
|
|
61
|
+
export type { ComputeLabelBandParams, LabelBandGeometry, LabelCaptionMeasurement, LabelScreenshotOptions, MeasureLabelCaptionParams } from './label-screenshot.cjs';
|
|
62
|
+
export { buildLabelSvg, computeLabelBand, escapeSvgText, labelScreenshot, measureLabelCaption } from './label-screenshot.cjs';
|
|
61
63
|
export type { LibResolver } from './lib-registry.cjs';
|
|
62
64
|
export { registerLibResolver } from './lib-registry.cjs';
|
|
63
65
|
export type { ObsidianRuntimeVersions, ObsidianVersionChangelogUrls, ObsidianVersionDownloads, ObsidianVersionMetadata } from './obsidian-metadata.cjs';
|
|
@@ -80,6 +82,8 @@ export type { BuildSoftKeyboardDiagnosticMessageParams, CheckIsSoftKeyboardUpPar
|
|
|
80
82
|
export { buildSoftKeyboardDiagnosticMessage, checkIsSoftKeyboardUp, DEFAULT_MINIMUM_KEYBOARD_HEIGHT_IN_PIXELS, parseInputMethodState, resolveSoftKeyboardTapPoints } from './soft-keyboard-geometry.cjs';
|
|
81
83
|
export type { RaiseSoftKeyboardParams, TapDeviceParams } from './soft-keyboard.cjs';
|
|
82
84
|
export { raiseSoftKeyboard, tapDevice } from './soft-keyboard.cjs';
|
|
85
|
+
export type { StaleBuildErrorConstructorParams } from './stale-build-error.cjs';
|
|
86
|
+
export { StaleBuildError } from './stale-build-error.cjs';
|
|
83
87
|
export type { PopulateFileContent, PopulateFilesParams, TemporaryVaultConstructorOptions } from './temporary-vault.cjs';
|
|
84
88
|
export { TemporaryVault } from './temporary-vault.cjs';
|
|
85
89
|
export type { AppiumSessionInfo, AppiumTransportConfig } from './transport-appium.cjs';
|
|
@@ -62,10 +62,7 @@ function selectInstallerDownloadUrl(params) {
|
|
|
62
62
|
if (params.platform === "win32") {
|
|
63
63
|
return downloads.exe;
|
|
64
64
|
}
|
|
65
|
-
|
|
66
|
-
return downloads.dmg;
|
|
67
|
-
}
|
|
68
|
-
return downloads.tar;
|
|
65
|
+
return params.platform === "darwin" ? downloads.dmg : downloads.tar;
|
|
69
66
|
}
|
|
70
67
|
function buildAssetNamePattern(shape, version) {
|
|
71
68
|
const infixGroup = shape.optionalInfixes.length > 0 ? `(?:${shape.optionalInfixes.map((infix) => escapeRegExp(infix)).join("|")})?` : "";
|
|
@@ -80,10 +77,7 @@ function getPlatformAssetShape(platform) {
|
|
|
80
77
|
if (platform === "win32") {
|
|
81
78
|
return WINDOWS_ASSET_SHAPE;
|
|
82
79
|
}
|
|
83
|
-
|
|
84
|
-
return MAC_ASSET_SHAPE;
|
|
85
|
-
}
|
|
86
|
-
return LINUX_ASSET_SHAPE;
|
|
80
|
+
return platform === "darwin" ? MAC_ASSET_SHAPE : LINUX_ASSET_SHAPE;
|
|
87
81
|
}
|
|
88
82
|
// Annotate the CommonJS export names for ESM import in node:
|
|
89
83
|
0 && (module.exports = {
|
|
@@ -91,4 +85,4 @@ function getPlatformAssetShape(platform) {
|
|
|
91
85
|
selectInstallerAssetName,
|
|
92
86
|
selectInstallerDownloadUrl
|
|
93
87
|
});
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2luc3RhbGxlci1hc3NldC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFB1cmUgaGVscGVycyBmb3IgcmVzb2x2aW5nIHdoaWNoIEdpdEh1YiByZWxlYXNlIGFzc2V0IGlzIHRoZSBkZXNrdG9wXG4gKiAqKmluc3RhbGxlcioqIGZvciBhIGdpdmVuIE9ic2lkaWFuIHZlcnNpb24gYW5kIHBsYXRmb3JtLlxuICpcbiAqIE9ic2lkaWFuIGNoYW5nZWQgaXRzIGluc3RhbGxlciBhc3NldCBuYW1pbmcgY29udmVudGlvbiBwYXJ0d2F5IHRocm91Z2ggaXRzXG4gKiBoaXN0b3J5LCBzbyBhIHZlcnNpb24gY2Fubm90IGJlIHR1cm5lZCBpbnRvIGFuIGFzc2V0IG5hbWUgYnkgc3RyaW5nXG4gKiB0ZW1wbGF0aW5nIGFsb25lOlxuICpcbiAqIC0gKipEb3QqKiBzZXBhcmF0b3Igb24gb2xkZXIgcmVsZWFzZXM6IGBPYnNpZGlhbi48dmVyPi5leGVgICh2ZXJpZmllZCAwLjE0LjVcbiAqICAgdGhyb3VnaCAxLjUuMTIpLCB3aXRoIGEgYC11bml2ZXJzYWxgIGluZml4IG9uIHRoZSBtYWNPUyBkbWdcbiAqICAgKGBPYnNpZGlhbi08dmVyPi11bml2ZXJzYWwuZG1nYCkuXG4gKiAtICoqSHlwaGVuKiogc2VwYXJhdG9yIG9uIG5ld2VyIHJlbGVhc2VzOiBgT2JzaWRpYW4tPHZlcj4uZXhlYCxcbiAqICAgYE9ic2lkaWFuLTx2ZXI+LmRtZ2AgKHZlcmlmaWVkIDEuNi43IG9ud2FyZDsgdGhlIHRyYW5zaXRpb24gaXMgYXJvdW5kIDEuNi4wKS5cbiAqXG4gKiBUaGUgaW50ZWdyYXRpb24tdGltZSBkb3dubG9hZGVyIChgb2JzaWRpYW4taW5zdGFsbGVyLnRzYCkgcXVlcmllcyB0aGVcbiAqIHJlbGVhc2UncyByZWFsIGFzc2V0IGxpc3QgYW5kIHBpY2tzIHRoZSBwbGF0Zm9ybS1jb3JyZWN0IG9uZSB3aXRoXG4gKiB7QGxpbmsgc2VsZWN0SW5zdGFsbGVyQXNzZXROYW1lfTsgaWYgdGhhdCBuZXR3b3JrIGNhbGwgaXMgdW5hdmFpbGFibGUgaXRcbiAqIGZhbGxzIGJhY2sgdG8gdHJ5aW5nIGV2ZXJ5IHtAbGluayBidWlsZEluc3RhbGxlckFzc2V0TmFtZUNhbmRpZGF0ZXN9IGZvcm0uXG4gKiBCb3RoIGhlbHBlcnMgYXJlIHB1cmUgc28gdGhlIHNlcGFyYXRvci9hcmNoIG1hdHJpeCBzdGF5cyB1bml0LXRlc3RlZCAodGhlXG4gKiBkb3dubG9hZGVyIGl0c2VsZiBuZWVkcyB0aGUgbmV0d29yayBhbmQgaXMgZXhjbHVkZWQgZnJvbSB1bml0IHRlc3RzKS5cbiAqXG4gKiBPbmx5IHRoZSB4NjQgaW5zdGFsbGVyIGlzIHJlc29sdmVkIFx1MjAxNCB0aGUgZXh0cmFjdGlvbiBwYXRoIGlzIHg2NC1vbmx5IFx1MjAxNCBzbyB0aGVcbiAqIDMyLWJpdCAvIGFybTY0IC8gYWxsLXVzZXJzIHNpYmxpbmcgYXNzZXRzIGFyZSBkZWxpYmVyYXRlbHkgcmVqZWN0ZWQuXG4gKlxuICogV2hlbiB0aGUgdmVyc2lvbiBpcyBwcmVzZW50IGluIHRoZSBiYWtlZCBgbWV0YWRhdGEuanNvbmAgY2F0YWxvZyAoZnJvbVxuICogdGhlIGBvYnNpZGlhbm1kL29ic2lkaWFuLXJlbGVhc2VzYCByZWxlYXNlIGFzc2V0cyksIGl0cyBleGFjdCBpbnN0YWxsZXIgVVJMIGlzIGFscmVhZHkga25vd247XG4gKiB7QGxpbmsgc2VsZWN0SW5zdGFsbGVyRG93bmxvYWRVcmx9IHBpY2tzIHRoZSBwbGF0Zm9ybS1jb3JyZWN0IG9uZSBhbmQgdGhlXG4gKiBkb3dubG9hZGVyIHVzZXMgaXQgZGlyZWN0bHksIHNraXBwaW5nIHRoZSByZWxlYXNlLUFQSSBsb29rdXAgYW5kIHRoZVxuICogbmFtZS10ZW1wbGF0aW5nIGZhbGxiYWNrIGVudGlyZWx5LlxuICovXG5cbmltcG9ydCB0eXBlIHsgT2JzaWRpYW5WZXJzaW9uRG93bmxvYWRzIH0gZnJvbSAnLi9vYnNpZGlhbi1tZXRhZGF0YS5janMnO1xuXG4vKipcbiAqIFRoZSBwbGF0Zm9ybS1zcGVjaWZpYyBzaGFwZSBvZiBhbiBPYnNpZGlhbiBpbnN0YWxsZXIgYXNzZXQgbmFtZS5cbiAqL1xuaW50ZXJmYWNlIFBsYXRmb3JtSW5zdGFsbGVyQXNzZXRTaGFwZSB7XG4gIC8qKlxuICBMZWFkaW5nIHRva2VuIG9mIHRoZSBhc3NldCBuYW1lOiBgT2JzaWRpYW5gIChXaW5kb3dzL21hY09TKSBvciBgb2JzaWRpYW5gIChMaW51eCkuXG4gICAqL1xuICByZWFkb25seSBiYXNlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICBGaWxlIGV4dGVuc2lvbiB3aXRob3V0IHRoZSBsZWFkaW5nIGRvdCwgZS5nLiBgZXhlYCwgYGRtZ2AsIGB0YXIuZ3pgLlxuICAgKi9cbiAgcmVhZG9ubHkgZXh0ZW5zaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEluZml4ZXMgcGVybWl0dGVkIGJldHdlZW4gdGhlIHZlcnNpb24gYW5kIHRoZSBleHRlbnNpb24gZm9yIHRoZSBwcmltYXJ5XG4gICAqIChub24tYXJjaCkgYXNzZXQsIGUuZy4gYC11bml2ZXJzYWxgIG9uIHRoZSBvbGRlciBtYWNPUyBkbWcuIEFuIGVtcHR5IGFycmF5XG4gICAqIG1lYW5zIHRoZSB2ZXJzaW9uIGlzIGltbWVkaWF0ZWx5IGZvbGxvd2VkIGJ5IHRoZSBleHRlbnNpb24uXG4gICAqL1xuICByZWFkb25seSBvcHRpb25hbEluZml4ZXM6IHJlYWRvbmx5IHN0cmluZ1tdO1xufVxuXG5jb25zdCBXSU5ET1dTX0FTU0VUX1NIQVBFOiBQbGF0Zm9ybUluc3RhbGxlckFzc2V0U2hhcGUgPSB7XG4gIGJhc2VOYW1lOiAnT2JzaWRpYW4nLFxuICBleHRlbnNpb246ICdleGUnLFxuICBvcHRpb25hbEluZml4ZXM6IFtdXG59O1xuXG5jb25zdCBNQUNfQVNTRVRfU0hBUEU6IFBsYXRmb3JtSW5zdGFsbGVyQXNzZXRTaGFwZSA9IHtcbiAgYmFzZU5hbWU6ICdPYnNpZGlhbicsXG4gIGV4dGVuc2lvbjogJ2RtZycsXG4gIG9wdGlvbmFsSW5maXhlczogWyctdW5pdmVyc2FsJ11cbn07XG5cbmNvbnN0IExJTlVYX0FTU0VUX1NIQVBFOiBQbGF0Zm9ybUluc3RhbGxlckFzc2V0U2hhcGUgPSB7XG4gIGJhc2VOYW1lOiAnb2JzaWRpYW4nLFxuICBleHRlbnNpb246ICd0YXIuZ3onLFxuICBvcHRpb25hbEluZml4ZXM6IFtdXG59O1xuXG4vKipcblNlcGFyYXRvciBmb3JtcyB0cmllZCwgaHlwaGVuIChuZXdlcikgZmlyc3QsIHdoZW4gZmFsbGluZyBiYWNrIHRvIHRlbXBsYXRlZCBuYW1lcy5cbiAqL1xuY29uc3QgQVNTRVRfTkFNRV9TRVBBUkFUT1JTID0gWyctJywgJy4nXSBhcyBjb25zdDtcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgYnVpbGRJbnN0YWxsZXJBc3NldE5hbWVDYW5kaWRhdGVzfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCdWlsZEluc3RhbGxlckFzc2V0TmFtZUNhbmRpZGF0ZXNQYXJhbXMge1xuICAvKipcbiAgVGhlIHBsYXRmb3JtIHRvIGJ1aWxkIGNhbmRpZGF0ZSBuYW1lcyBmb3IuXG4gICAqL1xuICByZWFkb25seSBwbGF0Zm9ybTogTm9kZUpTLlBsYXRmb3JtO1xuXG4gIC8qKlxuICBUaGUgY29uY3JldGUgYHgueS56YCB2ZXJzaW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBzZWxlY3RJbnN0YWxsZXJBc3NldE5hbWV9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdEluc3RhbGxlckFzc2V0TmFtZVBhcmFtcyB7XG4gIC8qKlxuICBUaGUgcmVsZWFzZSdzIGFzc2V0IG5hbWVzIChlLmcuIGZyb20gdGhlIEdpdEh1YiByZWxlYXNlIEFQSSkuXG4gICAqL1xuICByZWFkb25seSBhc3NldE5hbWVzOiByZWFkb25seSBzdHJpbmdbXTtcblxuICAvKipcbiAgVGhlIHBsYXRmb3JtIHdob3NlIGluc3RhbGxlciBhc3NldCB0byBzZWxlY3QuXG4gICAqL1xuICByZWFkb25seSBwbGF0Zm9ybTogTm9kZUpTLlBsYXRmb3JtO1xuXG4gIC8qKlxuICBUaGUgY29uY3JldGUgYHgueS56YCB2ZXJzaW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBzZWxlY3RJbnN0YWxsZXJEb3dubG9hZFVybH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0SW5zdGFsbGVyRG93bmxvYWRVcmxQYXJhbXMge1xuICAvKipcbiAgVGhlIHZlcnNpb24ncyBiYWtlZCBkb3dubG9hZCBVUkxzLCBvciBgdW5kZWZpbmVkYCB3aGVuIGl0IGlzIGFic2VudCBmcm9tIHRoZSBjYXRhbG9nLlxuICAgKi9cbiAgcmVhZG9ubHkgZG93bmxvYWRzOiBPYnNpZGlhblZlcnNpb25Eb3dubG9hZHMgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gIFRoZSBwbGF0Zm9ybSB3aG9zZSBpbnN0YWxsZXIgVVJMIHRvIHNlbGVjdC5cbiAgICovXG4gIHJlYWRvbmx5IHBsYXRmb3JtOiBOb2RlSlMuUGxhdGZvcm07XG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBmYWxsYmFjayBsaXN0IG9mIGluc3RhbGxlciBhc3NldCBuYW1lcyB0byB0cnkgd2hlbiB0aGUgcmVsZWFzZSdzXG4gKiByZWFsIGFzc2V0IGxpc3QgY2Fubm90IGJlIGZldGNoZWQsIGNvdmVyaW5nIGJvdGggc2VwYXJhdG9yIGZvcm1zIChhbmQsIG9uXG4gKiBtYWNPUywgdGhlIGAtdW5pdmVyc2FsYCBpbmZpeCkuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwbGF0Zm9ybSBhbmQgdmVyc2lvbi5cbiAqIEByZXR1cm5zIENhbmRpZGF0ZSBhc3NldCBuYW1lcywgaHlwaGVuLXNlcGFyYXRlZCBmb3JtcyBmaXJzdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkSW5zdGFsbGVyQXNzZXROYW1lQ2FuZGlkYXRlcyhwYXJhbXM6IEJ1aWxkSW5zdGFsbGVyQXNzZXROYW1lQ2FuZGlkYXRlc1BhcmFtcyk6IHN0cmluZ1tdIHtcbiAgY29uc3Qgc2hhcGUgPSBnZXRQbGF0Zm9ybUFzc2V0U2hhcGUocGFyYW1zLnBsYXRmb3JtKTtcbiAgY29uc3QgaW5maXhlcyA9IHNoYXBlLm9wdGlvbmFsSW5maXhlcy5sZW5ndGggPiAwID8gWycnLCAuLi5zaGFwZS5vcHRpb25hbEluZml4ZXNdIDogWycnXTtcbiAgY29uc3QgY2FuZGlkYXRlczogc3RyaW5nW10gPSBbXTtcbiAgZm9yIChjb25zdCBzZXBhcmF0b3Igb2YgQVNTRVRfTkFNRV9TRVBBUkFUT1JTKSB7XG4gICAgZm9yIChjb25zdCBpbmZpeCBvZiBpbmZpeGVzKSB7XG4gICAgICBjYW5kaWRhdGVzLnB1c2goYCR7c2hhcGUuYmFzZU5hbWV9JHtzZXBhcmF0b3J9JHtwYXJhbXMudmVyc2lvbn0ke2luZml4fS4ke3NoYXBlLmV4dGVuc2lvbn1gKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGNhbmRpZGF0ZXM7XG59XG5cbi8qKlxuICogU2VsZWN0cyB0aGUgcGxhdGZvcm0tY29ycmVjdCB4NjQgaW5zdGFsbGVyIGFzc2V0IG5hbWUgZnJvbSBhIHJlbGVhc2UncyBhc3NldFxuICogbGlzdCwgdG9sZXJhdGluZyBib3RoIHRoZSBkb3QtIGFuZCBoeXBoZW4tc2VwYXJhdGVkIG5hbWluZyBjb252ZW50aW9ucyBhbmRcbiAqIHJlamVjdGluZyB0aGUgMzItYml0IC8gYXJtNjQgLyBhbGwtdXNlcnMgc2libGluZyBhc3NldHMuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBhc3NldCBsaXN0LCBwbGF0Zm9ybSwgYW5kIHZlcnNpb24uXG4gKiBAcmV0dXJucyBUaGUgbWF0Y2hpbmcgYXNzZXQgbmFtZSwgb3IgYHVuZGVmaW5lZGAgaWYgbm9uZSBtYXRjaGVzIChlLmcuIGFcbiAqICAgY2F0YWx5c3QgcmVsZWFzZSB0aGF0IHNoaXBzIG5vIGluc3RhbGxlcikuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZWxlY3RJbnN0YWxsZXJBc3NldE5hbWUocGFyYW1zOiBTZWxlY3RJbnN0YWxsZXJBc3NldE5hbWVQYXJhbXMpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBjb25zdCBwYXR0ZXJuID0gYnVpbGRBc3NldE5hbWVQYXR0ZXJuKGdldFBsYXRmb3JtQXNzZXRTaGFwZShwYXJhbXMucGxhdGZvcm0pLCBwYXJhbXMudmVyc2lvbik7XG4gIHJldHVybiBwYXJhbXMuYXNzZXROYW1lcy5maW5kKChuYW1lKSA9PiBwYXR0ZXJuLnRlc3QobmFtZSkpO1xufVxuXG4vKipcbiAqIFNlbGVjdHMgdGhlIHBsYXRmb3JtLWNvcnJlY3QgeDY0IGluc3RhbGxlciBkb3dubG9hZCBVUkwgZnJvbSBhIHZlcnNpb24nc1xuICogYmFrZWQgY2F0YWxvZyBlbnRyeS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIGJha2VkIGRvd25sb2FkIFVSTHMgYW5kIHRoZSBwbGF0Zm9ybS5cbiAqIEByZXR1cm5zIFRoZSBpbnN0YWxsZXIgVVJMIGZvciB0aGUgcGxhdGZvcm0sIG9yIGB1bmRlZmluZWRgIHdoZW4gdGhlIHZlcnNpb25cbiAqICAgaGFzIG5vIGNhdGFsb2cgZW50cnkgb3Igc2hpcHMgbm8gZGVza3RvcCBpbnN0YWxsZXIgZm9yIGl0IChlLmcuIGEgY2F0YWx5c3RcbiAqICAgYnVpbGQsIG9yIGEgTGludXggYC50YXIuZ3pgIHRoYXQgd2FzIG5ldmVyIHB1Ymxpc2hlZCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZWxlY3RJbnN0YWxsZXJEb3dubG9hZFVybChwYXJhbXM6IFNlbGVjdEluc3RhbGxlckRvd25sb2FkVXJsUGFyYW1zKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgeyBkb3dubG9hZHMgfSA9IHBhcmFtcztcbiAgaWYgKCFkb3dubG9hZHMpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgaWYgKHBhcmFtcy5wbGF0Zm9ybSA9PT0gJ3dpbjMyJykge1xuICAgIHJldHVybiBkb3dubG9hZHMuZXhlO1xuICB9XG5cbiAgaWYgKHBhcmFtcy5wbGF0Zm9ybSA9PT0gJ2RhcndpbicpIHtcbiAgICByZXR1cm4gZG93bmxvYWRzLmRtZztcbiAgfVxuXG4gIHJldHVybiBkb3dubG9hZHMudGFyO1xufVxuXG4vKipcbiAqIEJ1aWxkcyBhbiBhbmNob3JlZCByZWd1bGFyIGV4cHJlc3Npb24gbWF0Y2hpbmcgdGhlIHByaW1hcnkgaW5zdGFsbGVyIGFzc2V0XG4gKiBmb3IgYSBwbGF0Zm9ybSBzaGFwZSBhbmQgdmVyc2lvbiwgYWNyb3NzIGJvdGggc2VwYXJhdG9yIGNvbnZlbnRpb25zLlxuICpcbiAqIEBwYXJhbSBzaGFwZSAtIFRoZSBwbGF0Zm9ybSBhc3NldCBzaGFwZS5cbiAqIEBwYXJhbSB2ZXJzaW9uIC0gVGhlIGNvbmNyZXRlIGB4LnkuemAgdmVyc2lvbi5cbiAqIEByZXR1cm5zIFRoZSBtYXRjaGluZyBwYXR0ZXJuLlxuICovXG5mdW5jdGlvbiBidWlsZEFzc2V0TmFtZVBhdHRlcm4oc2hhcGU6IFBsYXRmb3JtSW5zdGFsbGVyQXNzZXRTaGFwZSwgdmVyc2lvbjogc3RyaW5nKTogUmVnRXhwIHtcbiAgY29uc3QgaW5maXhHcm91cCA9IHNoYXBlLm9wdGlvbmFsSW5maXhlcy5sZW5ndGggPiAwXG4gICAgPyBgKD86JHtzaGFwZS5vcHRpb25hbEluZml4ZXMubWFwKChpbmZpeCkgPT4gZXNjYXBlUmVnRXhwKGluZml4KSkuam9pbignfCcpfSk/YFxuICAgIDogJyc7XG4gIHJldHVybiBuZXcgUmVnRXhwKFxuICAgIFN0cmluZy5yYXdgXiR7ZXNjYXBlUmVnRXhwKHNoYXBlLmJhc2VOYW1lKX1bLi1dJHtlc2NhcGVSZWdFeHAodmVyc2lvbil9JHtpbmZpeEdyb3VwfVxcLiR7ZXNjYXBlUmVnRXhwKHNoYXBlLmV4dGVuc2lvbil9JGBcbiAgKTtcbn1cblxuLyoqXG4gKiBFc2NhcGVzIGEgc3RyaW5nIGZvciBsaXRlcmFsIHVzZSBpbnNpZGUgYSByZWd1bGFyIGV4cHJlc3Npb24uXG4gKlxuICogQHBhcmFtIHZhbHVlIC0gVGhlIHJhdyBzdHJpbmcuXG4gKiBAcmV0dXJucyBUaGUgZXNjYXBlZCBzdHJpbmcuXG4gKi9cbmZ1bmN0aW9uIGVzY2FwZVJlZ0V4cCh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHZhbHVlLnJlcGxhY2VBbGwoL1suKis/XiR7fSgpfFtcXF1cXFxcXS9nLCBTdHJpbmcucmF3YFxcJCZgKTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB0aGUgaW5zdGFsbGVyIGFzc2V0IHNoYXBlIGZvciBhIHBsYXRmb3JtLlxuICpcbiAqIEBwYXJhbSBwbGF0Zm9ybSAtIFRoZSBOb2RlLmpzIHBsYXRmb3JtIGlkZW50aWZpZXIuXG4gKiBAcmV0dXJucyBUaGUgYXNzZXQgc2hhcGUgKExpbnV4IGAudGFyLmd6YCBmb3IgYW55IG5vbi1XaW5kb3dzL21hY09TIHBsYXRmb3JtKS5cbiAqL1xuZnVuY3Rpb24gZ2V0UGxhdGZvcm1Bc3NldFNoYXBlKHBsYXRmb3JtOiBOb2RlSlMuUGxhdGZvcm0pOiBQbGF0Zm9ybUluc3RhbGxlckFzc2V0U2hhcGUge1xuICBpZiAocGxhdGZvcm0gPT09ICd3aW4zMicpIHtcbiAgICByZXR1cm4gV0lORE9XU19BU1NFVF9TSEFQRTtcbiAgfVxuXG4gIGlmIChwbGF0Zm9ybSA9PT0gJ2RhcndpbicpIHtcbiAgICByZXR1cm4gTUFDX0FTU0VUX1NIQVBFO1xuICB9XG5cbiAgcmV0dXJuIExJTlVYX0FTU0VUX1NIQVBFO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUF5REEsTUFBTSxzQkFBbUQ7QUFBQSxFQUN2RCxVQUFVO0FBQUEsRUFDVixXQUFXO0FBQUEsRUFDWCxpQkFBaUIsQ0FBQztBQUNwQjtBQUVBLE1BQU0sa0JBQStDO0FBQUEsRUFDbkQsVUFBVTtBQUFBLEVBQ1YsV0FBVztBQUFBLEVBQ1gsaUJBQWlCLENBQUMsWUFBWTtBQUNoQztBQUVBLE1BQU0sb0JBQWlEO0FBQUEsRUFDckQsVUFBVTtBQUFBLEVBQ1YsV0FBVztBQUFBLEVBQ1gsaUJBQWlCLENBQUM7QUFDcEI7QUFLQSxNQUFNLHdCQUF3QixDQUFDLEtBQUssR0FBRztBQTREaEMsU0FBUyxrQ0FBa0MsUUFBMkQ7QUFDM0csUUFBTSxRQUFRLHNCQUFzQixPQUFPLFFBQVE7QUFDbkQsUUFBTSxVQUFVLE1BQU0sZ0JBQWdCLFNBQVMsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLGVBQWUsSUFBSSxDQUFDLEVBQUU7QUFDdkYsUUFBTSxhQUF1QixDQUFDO0FBQzlCLGFBQVcsYUFBYSx1QkFBdUI7QUFDN0MsZUFBVyxTQUFTLFNBQVM7QUFDM0IsaUJBQVcsS0FBSyxHQUFHLE1BQU0sUUFBUSxHQUFHLFNBQVMsR0FBRyxPQUFPLE9BQU8sR0FBRyxLQUFLLElBQUksTUFBTSxTQUFTLEVBQUU7QUFBQSxJQUM3RjtBQUFBLEVBQ0Y7QUFDQSxTQUFPO0FBQ1Q7QUFXTyxTQUFTLHlCQUF5QixRQUE0RDtBQUNuRyxRQUFNLFVBQVUsc0JBQXNCLHNCQUFzQixPQUFPLFFBQVEsR0FBRyxPQUFPLE9BQU87QUFDNUYsU0FBTyxPQUFPLFdBQVcsS0FBSyxDQUFDLFNBQVMsUUFBUSxLQUFLLElBQUksQ0FBQztBQUM1RDtBQVdPLFNBQVMsMkJBQTJCLFFBQThEO0FBQ3ZHLFFBQU0sRUFBRSxVQUFVLElBQUk7QUFDdEIsTUFBSSxDQUFDLFdBQVc7QUFDZCxXQUFPO0FBQUEsRUFDVDtBQUVBLE1BQUksT0FBTyxhQUFhLFNBQVM7QUFDL0IsV0FBTyxVQUFVO0FBQUEsRUFDbkI7QUFFQSxNQUFJLE9BQU8sYUFBYSxVQUFVO0FBQ2hDLFdBQU8sVUFBVTtBQUFBLEVBQ25CO0FBRUEsU0FBTyxVQUFVO0FBQ25CO0FBVUEsU0FBUyxzQkFBc0IsT0FBb0MsU0FBeUI7QUFDMUYsUUFBTSxhQUFhLE1BQU0sZ0JBQWdCLFNBQVMsSUFDOUMsTUFBTSxNQUFNLGdCQUFnQixJQUFJLENBQUMsVUFBVSxhQUFhLEtBQUssQ0FBQyxFQUFFLEtBQUssR0FBRyxDQUFDLE9BQ3pFO0FBQ0osU0FBTyxJQUFJO0FBQUEsSUFDVCxPQUFPLE9BQU8sYUFBYSxNQUFNLFFBQVEsQ0FBQyxPQUFPLGFBQWEsT0FBTyxDQUFDLEdBQUcsVUFBVSxLQUFLLGFBQWEsTUFBTSxTQUFTLENBQUM7QUFBQSxFQUN2SDtBQUNGO0FBUUEsU0FBUyxhQUFhLE9BQXVCO0FBQzNDLFNBQU8sTUFBTSxXQUFXLHVCQUF1QixPQUFPLFFBQVE7QUFDaEU7QUFRQSxTQUFTLHNCQUFzQixVQUF3RDtBQUNyRixNQUFJLGFBQWEsU0FBUztBQUN4QixXQUFPO0FBQUEsRUFDVDtBQUVBLE1BQUksYUFBYSxVQUFVO0FBQ3pCLFdBQU87QUFBQSxFQUNUO0FBRUEsU0FBTztBQUNUOyIsCiAgIm5hbWVzIjogW10KfQo=
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2luc3RhbGxlci1hc3NldC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFB1cmUgaGVscGVycyBmb3IgcmVzb2x2aW5nIHdoaWNoIEdpdEh1YiByZWxlYXNlIGFzc2V0IGlzIHRoZSBkZXNrdG9wXG4gKiAqKmluc3RhbGxlcioqIGZvciBhIGdpdmVuIE9ic2lkaWFuIHZlcnNpb24gYW5kIHBsYXRmb3JtLlxuICpcbiAqIE9ic2lkaWFuIGNoYW5nZWQgaXRzIGluc3RhbGxlciBhc3NldCBuYW1pbmcgY29udmVudGlvbiBwYXJ0d2F5IHRocm91Z2ggaXRzXG4gKiBoaXN0b3J5LCBzbyBhIHZlcnNpb24gY2Fubm90IGJlIHR1cm5lZCBpbnRvIGFuIGFzc2V0IG5hbWUgYnkgc3RyaW5nXG4gKiB0ZW1wbGF0aW5nIGFsb25lOlxuICpcbiAqIC0gKipEb3QqKiBzZXBhcmF0b3Igb24gb2xkZXIgcmVsZWFzZXM6IGBPYnNpZGlhbi48dmVyPi5leGVgICh2ZXJpZmllZCAwLjE0LjVcbiAqICAgdGhyb3VnaCAxLjUuMTIpLCB3aXRoIGEgYC11bml2ZXJzYWxgIGluZml4IG9uIHRoZSBtYWNPUyBkbWdcbiAqICAgKGBPYnNpZGlhbi08dmVyPi11bml2ZXJzYWwuZG1nYCkuXG4gKiAtICoqSHlwaGVuKiogc2VwYXJhdG9yIG9uIG5ld2VyIHJlbGVhc2VzOiBgT2JzaWRpYW4tPHZlcj4uZXhlYCxcbiAqICAgYE9ic2lkaWFuLTx2ZXI+LmRtZ2AgKHZlcmlmaWVkIDEuNi43IG9ud2FyZDsgdGhlIHRyYW5zaXRpb24gaXMgYXJvdW5kIDEuNi4wKS5cbiAqXG4gKiBUaGUgaW50ZWdyYXRpb24tdGltZSBkb3dubG9hZGVyIChgb2JzaWRpYW4taW5zdGFsbGVyLnRzYCkgcXVlcmllcyB0aGVcbiAqIHJlbGVhc2UncyByZWFsIGFzc2V0IGxpc3QgYW5kIHBpY2tzIHRoZSBwbGF0Zm9ybS1jb3JyZWN0IG9uZSB3aXRoXG4gKiB7QGxpbmsgc2VsZWN0SW5zdGFsbGVyQXNzZXROYW1lfTsgaWYgdGhhdCBuZXR3b3JrIGNhbGwgaXMgdW5hdmFpbGFibGUgaXRcbiAqIGZhbGxzIGJhY2sgdG8gdHJ5aW5nIGV2ZXJ5IHtAbGluayBidWlsZEluc3RhbGxlckFzc2V0TmFtZUNhbmRpZGF0ZXN9IGZvcm0uXG4gKiBCb3RoIGhlbHBlcnMgYXJlIHB1cmUgc28gdGhlIHNlcGFyYXRvci9hcmNoIG1hdHJpeCBzdGF5cyB1bml0LXRlc3RlZCAodGhlXG4gKiBkb3dubG9hZGVyIGl0c2VsZiBuZWVkcyB0aGUgbmV0d29yayBhbmQgaXMgZXhjbHVkZWQgZnJvbSB1bml0IHRlc3RzKS5cbiAqXG4gKiBPbmx5IHRoZSB4NjQgaW5zdGFsbGVyIGlzIHJlc29sdmVkIFx1MjAxNCB0aGUgZXh0cmFjdGlvbiBwYXRoIGlzIHg2NC1vbmx5IFx1MjAxNCBzbyB0aGVcbiAqIDMyLWJpdCAvIGFybTY0IC8gYWxsLXVzZXJzIHNpYmxpbmcgYXNzZXRzIGFyZSBkZWxpYmVyYXRlbHkgcmVqZWN0ZWQuXG4gKlxuICogV2hlbiB0aGUgdmVyc2lvbiBpcyBwcmVzZW50IGluIHRoZSBiYWtlZCBgbWV0YWRhdGEuanNvbmAgY2F0YWxvZyAoZnJvbVxuICogdGhlIGBvYnNpZGlhbm1kL29ic2lkaWFuLXJlbGVhc2VzYCByZWxlYXNlIGFzc2V0cyksIGl0cyBleGFjdCBpbnN0YWxsZXIgVVJMIGlzIGFscmVhZHkga25vd247XG4gKiB7QGxpbmsgc2VsZWN0SW5zdGFsbGVyRG93bmxvYWRVcmx9IHBpY2tzIHRoZSBwbGF0Zm9ybS1jb3JyZWN0IG9uZSBhbmQgdGhlXG4gKiBkb3dubG9hZGVyIHVzZXMgaXQgZGlyZWN0bHksIHNraXBwaW5nIHRoZSByZWxlYXNlLUFQSSBsb29rdXAgYW5kIHRoZVxuICogbmFtZS10ZW1wbGF0aW5nIGZhbGxiYWNrIGVudGlyZWx5LlxuICovXG5cbmltcG9ydCB0eXBlIHsgT2JzaWRpYW5WZXJzaW9uRG93bmxvYWRzIH0gZnJvbSAnLi9vYnNpZGlhbi1tZXRhZGF0YS5janMnO1xuXG4vKipcbiAqIFRoZSBwbGF0Zm9ybS1zcGVjaWZpYyBzaGFwZSBvZiBhbiBPYnNpZGlhbiBpbnN0YWxsZXIgYXNzZXQgbmFtZS5cbiAqL1xuaW50ZXJmYWNlIFBsYXRmb3JtSW5zdGFsbGVyQXNzZXRTaGFwZSB7XG4gIC8qKlxuICBMZWFkaW5nIHRva2VuIG9mIHRoZSBhc3NldCBuYW1lOiBgT2JzaWRpYW5gIChXaW5kb3dzL21hY09TKSBvciBgb2JzaWRpYW5gIChMaW51eCkuXG4gICAqL1xuICByZWFkb25seSBiYXNlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICBGaWxlIGV4dGVuc2lvbiB3aXRob3V0IHRoZSBsZWFkaW5nIGRvdCwgZS5nLiBgZXhlYCwgYGRtZ2AsIGB0YXIuZ3pgLlxuICAgKi9cbiAgcmVhZG9ubHkgZXh0ZW5zaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEluZml4ZXMgcGVybWl0dGVkIGJldHdlZW4gdGhlIHZlcnNpb24gYW5kIHRoZSBleHRlbnNpb24gZm9yIHRoZSBwcmltYXJ5XG4gICAqIChub24tYXJjaCkgYXNzZXQsIGUuZy4gYC11bml2ZXJzYWxgIG9uIHRoZSBvbGRlciBtYWNPUyBkbWcuIEFuIGVtcHR5IGFycmF5XG4gICAqIG1lYW5zIHRoZSB2ZXJzaW9uIGlzIGltbWVkaWF0ZWx5IGZvbGxvd2VkIGJ5IHRoZSBleHRlbnNpb24uXG4gICAqL1xuICByZWFkb25seSBvcHRpb25hbEluZml4ZXM6IHJlYWRvbmx5IHN0cmluZ1tdO1xufVxuXG5jb25zdCBXSU5ET1dTX0FTU0VUX1NIQVBFOiBQbGF0Zm9ybUluc3RhbGxlckFzc2V0U2hhcGUgPSB7XG4gIGJhc2VOYW1lOiAnT2JzaWRpYW4nLFxuICBleHRlbnNpb246ICdleGUnLFxuICBvcHRpb25hbEluZml4ZXM6IFtdXG59O1xuXG5jb25zdCBNQUNfQVNTRVRfU0hBUEU6IFBsYXRmb3JtSW5zdGFsbGVyQXNzZXRTaGFwZSA9IHtcbiAgYmFzZU5hbWU6ICdPYnNpZGlhbicsXG4gIGV4dGVuc2lvbjogJ2RtZycsXG4gIG9wdGlvbmFsSW5maXhlczogWyctdW5pdmVyc2FsJ11cbn07XG5cbmNvbnN0IExJTlVYX0FTU0VUX1NIQVBFOiBQbGF0Zm9ybUluc3RhbGxlckFzc2V0U2hhcGUgPSB7XG4gIGJhc2VOYW1lOiAnb2JzaWRpYW4nLFxuICBleHRlbnNpb246ICd0YXIuZ3onLFxuICBvcHRpb25hbEluZml4ZXM6IFtdXG59O1xuXG4vKipcblNlcGFyYXRvciBmb3JtcyB0cmllZCwgaHlwaGVuIChuZXdlcikgZmlyc3QsIHdoZW4gZmFsbGluZyBiYWNrIHRvIHRlbXBsYXRlZCBuYW1lcy5cbiAqL1xuY29uc3QgQVNTRVRfTkFNRV9TRVBBUkFUT1JTID0gWyctJywgJy4nXSBhcyBjb25zdDtcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgYnVpbGRJbnN0YWxsZXJBc3NldE5hbWVDYW5kaWRhdGVzfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCdWlsZEluc3RhbGxlckFzc2V0TmFtZUNhbmRpZGF0ZXNQYXJhbXMge1xuICAvKipcbiAgVGhlIHBsYXRmb3JtIHRvIGJ1aWxkIGNhbmRpZGF0ZSBuYW1lcyBmb3IuXG4gICAqL1xuICByZWFkb25seSBwbGF0Zm9ybTogTm9kZUpTLlBsYXRmb3JtO1xuXG4gIC8qKlxuICBUaGUgY29uY3JldGUgYHgueS56YCB2ZXJzaW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBzZWxlY3RJbnN0YWxsZXJBc3NldE5hbWV9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdEluc3RhbGxlckFzc2V0TmFtZVBhcmFtcyB7XG4gIC8qKlxuICBUaGUgcmVsZWFzZSdzIGFzc2V0IG5hbWVzIChlLmcuIGZyb20gdGhlIEdpdEh1YiByZWxlYXNlIEFQSSkuXG4gICAqL1xuICByZWFkb25seSBhc3NldE5hbWVzOiByZWFkb25seSBzdHJpbmdbXTtcblxuICAvKipcbiAgVGhlIHBsYXRmb3JtIHdob3NlIGluc3RhbGxlciBhc3NldCB0byBzZWxlY3QuXG4gICAqL1xuICByZWFkb25seSBwbGF0Zm9ybTogTm9kZUpTLlBsYXRmb3JtO1xuXG4gIC8qKlxuICBUaGUgY29uY3JldGUgYHgueS56YCB2ZXJzaW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBzZWxlY3RJbnN0YWxsZXJEb3dubG9hZFVybH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0SW5zdGFsbGVyRG93bmxvYWRVcmxQYXJhbXMge1xuICAvKipcbiAgVGhlIHZlcnNpb24ncyBiYWtlZCBkb3dubG9hZCBVUkxzLCBvciBgdW5kZWZpbmVkYCB3aGVuIGl0IGlzIGFic2VudCBmcm9tIHRoZSBjYXRhbG9nLlxuICAgKi9cbiAgcmVhZG9ubHkgZG93bmxvYWRzOiBPYnNpZGlhblZlcnNpb25Eb3dubG9hZHMgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gIFRoZSBwbGF0Zm9ybSB3aG9zZSBpbnN0YWxsZXIgVVJMIHRvIHNlbGVjdC5cbiAgICovXG4gIHJlYWRvbmx5IHBsYXRmb3JtOiBOb2RlSlMuUGxhdGZvcm07XG59XG5cbi8qKlxuICogQnVpbGRzIHRoZSBmYWxsYmFjayBsaXN0IG9mIGluc3RhbGxlciBhc3NldCBuYW1lcyB0byB0cnkgd2hlbiB0aGUgcmVsZWFzZSdzXG4gKiByZWFsIGFzc2V0IGxpc3QgY2Fubm90IGJlIGZldGNoZWQsIGNvdmVyaW5nIGJvdGggc2VwYXJhdG9yIGZvcm1zIChhbmQsIG9uXG4gKiBtYWNPUywgdGhlIGAtdW5pdmVyc2FsYCBpbmZpeCkuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwbGF0Zm9ybSBhbmQgdmVyc2lvbi5cbiAqIEByZXR1cm5zIENhbmRpZGF0ZSBhc3NldCBuYW1lcywgaHlwaGVuLXNlcGFyYXRlZCBmb3JtcyBmaXJzdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkSW5zdGFsbGVyQXNzZXROYW1lQ2FuZGlkYXRlcyhwYXJhbXM6IEJ1aWxkSW5zdGFsbGVyQXNzZXROYW1lQ2FuZGlkYXRlc1BhcmFtcyk6IHN0cmluZ1tdIHtcbiAgY29uc3Qgc2hhcGUgPSBnZXRQbGF0Zm9ybUFzc2V0U2hhcGUocGFyYW1zLnBsYXRmb3JtKTtcbiAgY29uc3QgaW5maXhlcyA9IHNoYXBlLm9wdGlvbmFsSW5maXhlcy5sZW5ndGggPiAwID8gWycnLCAuLi5zaGFwZS5vcHRpb25hbEluZml4ZXNdIDogWycnXTtcbiAgY29uc3QgY2FuZGlkYXRlczogc3RyaW5nW10gPSBbXTtcbiAgZm9yIChjb25zdCBzZXBhcmF0b3Igb2YgQVNTRVRfTkFNRV9TRVBBUkFUT1JTKSB7XG4gICAgZm9yIChjb25zdCBpbmZpeCBvZiBpbmZpeGVzKSB7XG4gICAgICBjYW5kaWRhdGVzLnB1c2goYCR7c2hhcGUuYmFzZU5hbWV9JHtzZXBhcmF0b3J9JHtwYXJhbXMudmVyc2lvbn0ke2luZml4fS4ke3NoYXBlLmV4dGVuc2lvbn1gKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGNhbmRpZGF0ZXM7XG59XG5cbi8qKlxuICogU2VsZWN0cyB0aGUgcGxhdGZvcm0tY29ycmVjdCB4NjQgaW5zdGFsbGVyIGFzc2V0IG5hbWUgZnJvbSBhIHJlbGVhc2UncyBhc3NldFxuICogbGlzdCwgdG9sZXJhdGluZyBib3RoIHRoZSBkb3QtIGFuZCBoeXBoZW4tc2VwYXJhdGVkIG5hbWluZyBjb252ZW50aW9ucyBhbmRcbiAqIHJlamVjdGluZyB0aGUgMzItYml0IC8gYXJtNjQgLyBhbGwtdXNlcnMgc2libGluZyBhc3NldHMuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBhc3NldCBsaXN0LCBwbGF0Zm9ybSwgYW5kIHZlcnNpb24uXG4gKiBAcmV0dXJucyBUaGUgbWF0Y2hpbmcgYXNzZXQgbmFtZSwgb3IgYHVuZGVmaW5lZGAgaWYgbm9uZSBtYXRjaGVzIChlLmcuIGFcbiAqICAgY2F0YWx5c3QgcmVsZWFzZSB0aGF0IHNoaXBzIG5vIGluc3RhbGxlcikuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZWxlY3RJbnN0YWxsZXJBc3NldE5hbWUocGFyYW1zOiBTZWxlY3RJbnN0YWxsZXJBc3NldE5hbWVQYXJhbXMpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBjb25zdCBwYXR0ZXJuID0gYnVpbGRBc3NldE5hbWVQYXR0ZXJuKGdldFBsYXRmb3JtQXNzZXRTaGFwZShwYXJhbXMucGxhdGZvcm0pLCBwYXJhbXMudmVyc2lvbik7XG4gIHJldHVybiBwYXJhbXMuYXNzZXROYW1lcy5maW5kKChuYW1lKSA9PiBwYXR0ZXJuLnRlc3QobmFtZSkpO1xufVxuXG4vKipcbiAqIFNlbGVjdHMgdGhlIHBsYXRmb3JtLWNvcnJlY3QgeDY0IGluc3RhbGxlciBkb3dubG9hZCBVUkwgZnJvbSBhIHZlcnNpb24nc1xuICogYmFrZWQgY2F0YWxvZyBlbnRyeS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIGJha2VkIGRvd25sb2FkIFVSTHMgYW5kIHRoZSBwbGF0Zm9ybS5cbiAqIEByZXR1cm5zIFRoZSBpbnN0YWxsZXIgVVJMIGZvciB0aGUgcGxhdGZvcm0sIG9yIGB1bmRlZmluZWRgIHdoZW4gdGhlIHZlcnNpb25cbiAqICAgaGFzIG5vIGNhdGFsb2cgZW50cnkgb3Igc2hpcHMgbm8gZGVza3RvcCBpbnN0YWxsZXIgZm9yIGl0IChlLmcuIGEgY2F0YWx5c3RcbiAqICAgYnVpbGQsIG9yIGEgTGludXggYC50YXIuZ3pgIHRoYXQgd2FzIG5ldmVyIHB1Ymxpc2hlZCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZWxlY3RJbnN0YWxsZXJEb3dubG9hZFVybChwYXJhbXM6IFNlbGVjdEluc3RhbGxlckRvd25sb2FkVXJsUGFyYW1zKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgeyBkb3dubG9hZHMgfSA9IHBhcmFtcztcbiAgaWYgKCFkb3dubG9hZHMpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgaWYgKHBhcmFtcy5wbGF0Zm9ybSA9PT0gJ3dpbjMyJykge1xuICAgIHJldHVybiBkb3dubG9hZHMuZXhlO1xuICB9XG5cbiAgcmV0dXJuIHBhcmFtcy5wbGF0Zm9ybSA9PT0gJ2RhcndpbicgPyBkb3dubG9hZHMuZG1nIDogZG93bmxvYWRzLnRhcjtcbn1cblxuLyoqXG4gKiBCdWlsZHMgYW4gYW5jaG9yZWQgcmVndWxhciBleHByZXNzaW9uIG1hdGNoaW5nIHRoZSBwcmltYXJ5IGluc3RhbGxlciBhc3NldFxuICogZm9yIGEgcGxhdGZvcm0gc2hhcGUgYW5kIHZlcnNpb24sIGFjcm9zcyBib3RoIHNlcGFyYXRvciBjb252ZW50aW9ucy5cbiAqXG4gKiBAcGFyYW0gc2hhcGUgLSBUaGUgcGxhdGZvcm0gYXNzZXQgc2hhcGUuXG4gKiBAcGFyYW0gdmVyc2lvbiAtIFRoZSBjb25jcmV0ZSBgeC55LnpgIHZlcnNpb24uXG4gKiBAcmV0dXJucyBUaGUgbWF0Y2hpbmcgcGF0dGVybi5cbiAqL1xuZnVuY3Rpb24gYnVpbGRBc3NldE5hbWVQYXR0ZXJuKHNoYXBlOiBQbGF0Zm9ybUluc3RhbGxlckFzc2V0U2hhcGUsIHZlcnNpb246IHN0cmluZyk6IFJlZ0V4cCB7XG4gIGNvbnN0IGluZml4R3JvdXAgPSBzaGFwZS5vcHRpb25hbEluZml4ZXMubGVuZ3RoID4gMFxuICAgID8gYCg/OiR7c2hhcGUub3B0aW9uYWxJbmZpeGVzLm1hcCgoaW5maXgpID0+IGVzY2FwZVJlZ0V4cChpbmZpeCkpLmpvaW4oJ3wnKX0pP2BcbiAgICA6ICcnO1xuICByZXR1cm4gbmV3IFJlZ0V4cChcbiAgICBTdHJpbmcucmF3YF4ke2VzY2FwZVJlZ0V4cChzaGFwZS5iYXNlTmFtZSl9Wy4tXSR7ZXNjYXBlUmVnRXhwKHZlcnNpb24pfSR7aW5maXhHcm91cH1cXC4ke2VzY2FwZVJlZ0V4cChzaGFwZS5leHRlbnNpb24pfSRgXG4gICk7XG59XG5cbi8qKlxuICogRXNjYXBlcyBhIHN0cmluZyBmb3IgbGl0ZXJhbCB1c2UgaW5zaWRlIGEgcmVndWxhciBleHByZXNzaW9uLlxuICpcbiAqIEBwYXJhbSB2YWx1ZSAtIFRoZSByYXcgc3RyaW5nLlxuICogQHJldHVybnMgVGhlIGVzY2FwZWQgc3RyaW5nLlxuICovXG5mdW5jdGlvbiBlc2NhcGVSZWdFeHAodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiB2YWx1ZS5yZXBsYWNlQWxsKC9bLiorP14ke30oKXxbXFxdXFxcXF0vZywgU3RyaW5nLnJhd2BcXCQmYCk7XG59XG5cbi8qKlxuICogUmVzb2x2ZXMgdGhlIGluc3RhbGxlciBhc3NldCBzaGFwZSBmb3IgYSBwbGF0Zm9ybS5cbiAqXG4gKiBAcGFyYW0gcGxhdGZvcm0gLSBUaGUgTm9kZS5qcyBwbGF0Zm9ybSBpZGVudGlmaWVyLlxuICogQHJldHVybnMgVGhlIGFzc2V0IHNoYXBlIChMaW51eCBgLnRhci5nemAgZm9yIGFueSBub24tV2luZG93cy9tYWNPUyBwbGF0Zm9ybSkuXG4gKi9cbmZ1bmN0aW9uIGdldFBsYXRmb3JtQXNzZXRTaGFwZShwbGF0Zm9ybTogTm9kZUpTLlBsYXRmb3JtKTogUGxhdGZvcm1JbnN0YWxsZXJBc3NldFNoYXBlIHtcbiAgaWYgKHBsYXRmb3JtID09PSAnd2luMzInKSB7XG4gICAgcmV0dXJuIFdJTkRPV1NfQVNTRVRfU0hBUEU7XG4gIH1cblxuICByZXR1cm4gcGxhdGZvcm0gPT09ICdkYXJ3aW4nID8gTUFDX0FTU0VUX1NIQVBFIDogTElOVVhfQVNTRVRfU0hBUEU7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQXlEQSxNQUFNLHNCQUFtRDtBQUFBLEVBQ3ZELFVBQVU7QUFBQSxFQUNWLFdBQVc7QUFBQSxFQUNYLGlCQUFpQixDQUFDO0FBQ3BCO0FBRUEsTUFBTSxrQkFBK0M7QUFBQSxFQUNuRCxVQUFVO0FBQUEsRUFDVixXQUFXO0FBQUEsRUFDWCxpQkFBaUIsQ0FBQyxZQUFZO0FBQ2hDO0FBRUEsTUFBTSxvQkFBaUQ7QUFBQSxFQUNyRCxVQUFVO0FBQUEsRUFDVixXQUFXO0FBQUEsRUFDWCxpQkFBaUIsQ0FBQztBQUNwQjtBQUtBLE1BQU0sd0JBQXdCLENBQUMsS0FBSyxHQUFHO0FBNERoQyxTQUFTLGtDQUFrQyxRQUEyRDtBQUMzRyxRQUFNLFFBQVEsc0JBQXNCLE9BQU8sUUFBUTtBQUNuRCxRQUFNLFVBQVUsTUFBTSxnQkFBZ0IsU0FBUyxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sZUFBZSxJQUFJLENBQUMsRUFBRTtBQUN2RixRQUFNLGFBQXVCLENBQUM7QUFDOUIsYUFBVyxhQUFhLHVCQUF1QjtBQUM3QyxlQUFXLFNBQVMsU0FBUztBQUMzQixpQkFBVyxLQUFLLEdBQUcsTUFBTSxRQUFRLEdBQUcsU0FBUyxHQUFHLE9BQU8sT0FBTyxHQUFHLEtBQUssSUFBSSxNQUFNLFNBQVMsRUFBRTtBQUFBLElBQzdGO0FBQUEsRUFDRjtBQUNBLFNBQU87QUFDVDtBQVdPLFNBQVMseUJBQXlCLFFBQTREO0FBQ25HLFFBQU0sVUFBVSxzQkFBc0Isc0JBQXNCLE9BQU8sUUFBUSxHQUFHLE9BQU8sT0FBTztBQUM1RixTQUFPLE9BQU8sV0FBVyxLQUFLLENBQUMsU0FBUyxRQUFRLEtBQUssSUFBSSxDQUFDO0FBQzVEO0FBV08sU0FBUywyQkFBMkIsUUFBOEQ7QUFDdkcsUUFBTSxFQUFFLFVBQVUsSUFBSTtBQUN0QixNQUFJLENBQUMsV0FBVztBQUNkLFdBQU87QUFBQSxFQUNUO0FBRUEsTUFBSSxPQUFPLGFBQWEsU0FBUztBQUMvQixXQUFPLFVBQVU7QUFBQSxFQUNuQjtBQUVBLFNBQU8sT0FBTyxhQUFhLFdBQVcsVUFBVSxNQUFNLFVBQVU7QUFDbEU7QUFVQSxTQUFTLHNCQUFzQixPQUFvQyxTQUF5QjtBQUMxRixRQUFNLGFBQWEsTUFBTSxnQkFBZ0IsU0FBUyxJQUM5QyxNQUFNLE1BQU0sZ0JBQWdCLElBQUksQ0FBQyxVQUFVLGFBQWEsS0FBSyxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUMsT0FDekU7QUFDSixTQUFPLElBQUk7QUFBQSxJQUNULE9BQU8sT0FBTyxhQUFhLE1BQU0sUUFBUSxDQUFDLE9BQU8sYUFBYSxPQUFPLENBQUMsR0FBRyxVQUFVLEtBQUssYUFBYSxNQUFNLFNBQVMsQ0FBQztBQUFBLEVBQ3ZIO0FBQ0Y7QUFRQSxTQUFTLGFBQWEsT0FBdUI7QUFDM0MsU0FBTyxNQUFNLFdBQVcsdUJBQXVCLE9BQU8sUUFBUTtBQUNoRTtBQVFBLFNBQVMsc0JBQXNCLFVBQXdEO0FBQ3JGLE1BQUksYUFBYSxTQUFTO0FBQ3hCLFdBQU87QUFBQSxFQUNUO0FBRUEsU0FBTyxhQUFhLFdBQVcsa0JBQWtCO0FBQ25EOyIsCiAgIm5hbWVzIjogW10KfQo=
|
|
@@ -39,17 +39,14 @@ function resolveInstallerCompatibility(params) {
|
|
|
39
39
|
...recommendedFloor
|
|
40
40
|
};
|
|
41
41
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
return {
|
|
42
|
+
return minRecommendedInstallerVersion !== void 0 && (0, import_obsidian_version.compareVersions)(installerVersion, minRecommendedInstallerVersion) < 0 ? {
|
|
43
|
+
appVersion,
|
|
44
|
+
installerVersion,
|
|
45
|
+
message: `Obsidian installer ${installerVersion} runs Obsidian ${appVersion} but is older than the recommended installer ${minRecommendedInstallerVersion}; update the installer for full compatibility.`,
|
|
46
|
+
minRecommendedInstallerVersion,
|
|
47
|
+
minRunnableInstallerVersion,
|
|
48
|
+
tier: "nagged"
|
|
49
|
+
} : {
|
|
53
50
|
appVersion,
|
|
54
51
|
installerVersion,
|
|
55
52
|
minRunnableInstallerVersion,
|
|
@@ -61,4 +58,4 @@ function resolveInstallerCompatibility(params) {
|
|
|
61
58
|
0 && (module.exports = {
|
|
62
59
|
resolveInstallerCompatibility
|
|
63
60
|
});
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2luc3RhbGxlci1jb21wYXRpYmlsaXR5LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogUHVyZSB2ZXJkaWN0IG9uIHdoZXRoZXIgYSByZXNvbHZlZCAoT2JzaWRpYW4gYXBwLCBpbnN0YWxsZXIpIHZlcnNpb24gcGFpciBpc1xuICogY29tcGF0aWJsZSwgY29tcHV0ZWQgb2ZmbGluZSBmcm9tIHRoZSBgbWV0YWRhdGEuanNvbmAgdGhyZXNob2xkcy4gS2VwdCBzZXBhcmF0ZVxuICogZnJvbSB0aGUgaW50ZWdyYXRpb24tb25seSBgdHJhbnNwb3J0LWZhY3RvcnlgICh3aGljaCBkcml2ZXMgcmVhbFxuICogZG93bmxvYWRzL2xhdW5jaGVzIGFuZCBpcyBleGNsdWRlZCBmcm9tIHVuaXQgdGVzdHMpIHNvIHRoZSB0aWVyIGxvZ2ljIHN0YXlzXG4gKiB1bml0LXRlc3RhYmxlIFx1MjAxNCBtaXJyb3JpbmcgdGhlIGByZW5kZXJlci1ib290LWRldGVjdGlvbmAgc3BsaXQuXG4gKlxuICogVHdvIHRocmVzaG9sZHMgZHJpdmUgdGhlIHZlcmRpY3QsIGJvdGggaW5zdGFsbGVyIHZlcnNpb25zIGRpcmVjdGx5IGNvbXBhcmFibGVcbiAqIHRvIHRoZSByZXNvbHZlZCBpbnN0YWxsZXIvc2hlbGwgdmVyc2lvbjpcbiAqXG4gKiAtIGBtaW5SdW5uYWJsZUluc3RhbGxlclZlcnNpb25gIFx1MjAxNCB0aGUgcnVuIGZsb29yLiBCZWxvdyBpdCB0aGUgYXBwIGNhbm5vdCBib290XG4gKiAgIChgJ3VucnVubmFibGUnYCk7IHRoZSBjYWxsZXIgdHVybnMgdGhpcyBpbnRvIGEgcHJvYWN0aXZlXG4gKiAgIGBJbmNvbXBhdGlibGVJbnN0YWxsZXJWZXJzaW9uRXJyb3JgIGJlZm9yZSBhbnkgZG93bmxvYWQvbGF1bmNoIFx1MjAxNCB1bmxlc3MgdGhlXG4gKiAgIGNhbGxlciBoYXMgZGlzYWJsZWQgdGhlIHByb2FjdGl2ZSB0aHJvdyAoYHNob3VsZFRocm93T25JbmNvbXBhdGlibGVJbnN0YWxsZXJgXG4gKiAgIGBmYWxzZWApLCBpbiB3aGljaCBjYXNlIHRoZSBib290IHByb2NlZWRzIGFuZCB0aGUgcmVhY3RpdmUgZGVhZC1ib290IGZhc3QtZmFpbFxuICogICBjYXRjaGVzIGl0LlxuICogLSBgbWluUmVjb21tZW5kZWRJbnN0YWxsZXJWZXJzaW9uYCBcdTIwMTQgdGhlIHJlY29tbWVuZGVkIGZsb29yIChvbGRlciB2ZXJzaW9uc1xuICogICBvbmx5KS4gQXQvYWJvdmUgdGhlIHJ1biBmbG9vciBidXQgYmVsb3cgdGhpcywgdGhlIGFwcCBydW5zIGJ1dCBpcyBiZWxvd1xuICogICBPYnNpZGlhbidzIHJlY29tbWVuZGF0aW9uIChgJ25hZ2dlZCdgKSwgc3VyZmFjZWQgYXMgYSB3YXJuaW5nLlxuICpcbiAqIFdoZW4gdGhlIGluc3RhbGxlciB2ZXJzaW9uIGlzIHVua25vd24gKGUuZy4gYW4gdW5kZXRlY3RhYmxlIExpbnV4IHNoZWxsKSBvciB0aGVcbiAqIGFwcCB2ZXJzaW9uIGlzIGFic2VudCBmcm9tIHRoZSB0YWJsZSwgdGhlIHZlcmRpY3QgaXMgYCd1bmtub3duJ2AgYW5kIG5vdGhpbmcgaXNcbiAqIHRocm93biBvciB3YXJuZWQgXHUyMDE0IHRoZSByZWFjdGl2ZSBkZWFkLWJvb3QgZmFzdC1mYWlsIHJlbWFpbnMgdGhlIHNhZmV0eSBuZXQuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBPYnNpZGlhblZlcnNpb25NZXRhZGF0YSB9IGZyb20gJy4vb2JzaWRpYW4tbWV0YWRhdGEuY2pzJztcblxuaW1wb3J0IHsgY29tcGFyZVZlcnNpb25zIH0gZnJvbSAnLi9vYnNpZGlhbi12ZXJzaW9uLmNqcyc7XG5cbi8qKlxuICogVGhlIGNvbXBhdGliaWxpdHkgdmVyZGljdCBmb3IgYSByZXNvbHZlZCAoYXBwLCBpbnN0YWxsZXIpIHZlcnNpb24gcGFpciwgY2FycmllZFxuICogYXMgZGF0YSBvbiB0aGUgdHJhbnNwb3J0IC8gY29ubmVjdGlvbiByZXN1bHQgc28gY29uc3VtZXJzIGNhbiBhc3NlcnQgb24gaXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5zdGFsbGVyQ29tcGF0aWJpbGl0eSB7XG4gIC8qKlxuICBUaGUgcmVzb2x2ZWQgT2JzaWRpYW4gYXBwIChhc2FyKSB2ZXJzaW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwVmVyc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICBUaGUgcmVzb2x2ZWQgaW5zdGFsbGVyL0VsZWN0cm9uIHNoZWxsIHZlcnNpb24sIG9yIGBudWxsYCB3aGVuIHVua25vd24uXG4gICAqL1xuICByZWFkb25seSBpbnN0YWxsZXJWZXJzaW9uOiBudWxsIHwgc3RyaW5nO1xuXG4gIC8qKlxuICBBIGh1bWFuLXJlYWRhYmxlIGV4cGxhbmF0aW9uLCBwcmVzZW50IGZvciB0aGUgYCduYWdnZWQnYCB0aWVyLlxuICAgKi9cbiAgcmVhZG9ubHkgbWVzc2FnZT86IHN0cmluZztcblxuICAvKipcbiAgVGhlIHJlY29tbWVuZGVkIGluc3RhbGxlciBmbG9vciwgd2hlbiB0aGUgdGFibGUgY2FycmllcyBvbmUuXG4gICAqL1xuICByZWFkb25seSBtaW5SZWNvbW1lbmRlZEluc3RhbGxlclZlcnNpb24/
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2luc3RhbGxlci1jb21wYXRpYmlsaXR5LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogUHVyZSB2ZXJkaWN0IG9uIHdoZXRoZXIgYSByZXNvbHZlZCAoT2JzaWRpYW4gYXBwLCBpbnN0YWxsZXIpIHZlcnNpb24gcGFpciBpc1xuICogY29tcGF0aWJsZSwgY29tcHV0ZWQgb2ZmbGluZSBmcm9tIHRoZSBgbWV0YWRhdGEuanNvbmAgdGhyZXNob2xkcy4gS2VwdCBzZXBhcmF0ZVxuICogZnJvbSB0aGUgaW50ZWdyYXRpb24tb25seSBgdHJhbnNwb3J0LWZhY3RvcnlgICh3aGljaCBkcml2ZXMgcmVhbFxuICogZG93bmxvYWRzL2xhdW5jaGVzIGFuZCBpcyBleGNsdWRlZCBmcm9tIHVuaXQgdGVzdHMpIHNvIHRoZSB0aWVyIGxvZ2ljIHN0YXlzXG4gKiB1bml0LXRlc3RhYmxlIFx1MjAxNCBtaXJyb3JpbmcgdGhlIGByZW5kZXJlci1ib290LWRldGVjdGlvbmAgc3BsaXQuXG4gKlxuICogVHdvIHRocmVzaG9sZHMgZHJpdmUgdGhlIHZlcmRpY3QsIGJvdGggaW5zdGFsbGVyIHZlcnNpb25zIGRpcmVjdGx5IGNvbXBhcmFibGVcbiAqIHRvIHRoZSByZXNvbHZlZCBpbnN0YWxsZXIvc2hlbGwgdmVyc2lvbjpcbiAqXG4gKiAtIGBtaW5SdW5uYWJsZUluc3RhbGxlclZlcnNpb25gIFx1MjAxNCB0aGUgcnVuIGZsb29yLiBCZWxvdyBpdCB0aGUgYXBwIGNhbm5vdCBib290XG4gKiAgIChgJ3VucnVubmFibGUnYCk7IHRoZSBjYWxsZXIgdHVybnMgdGhpcyBpbnRvIGEgcHJvYWN0aXZlXG4gKiAgIGBJbmNvbXBhdGlibGVJbnN0YWxsZXJWZXJzaW9uRXJyb3JgIGJlZm9yZSBhbnkgZG93bmxvYWQvbGF1bmNoIFx1MjAxNCB1bmxlc3MgdGhlXG4gKiAgIGNhbGxlciBoYXMgZGlzYWJsZWQgdGhlIHByb2FjdGl2ZSB0aHJvdyAoYHNob3VsZFRocm93T25JbmNvbXBhdGlibGVJbnN0YWxsZXJgXG4gKiAgIGBmYWxzZWApLCBpbiB3aGljaCBjYXNlIHRoZSBib290IHByb2NlZWRzIGFuZCB0aGUgcmVhY3RpdmUgZGVhZC1ib290IGZhc3QtZmFpbFxuICogICBjYXRjaGVzIGl0LlxuICogLSBgbWluUmVjb21tZW5kZWRJbnN0YWxsZXJWZXJzaW9uYCBcdTIwMTQgdGhlIHJlY29tbWVuZGVkIGZsb29yIChvbGRlciB2ZXJzaW9uc1xuICogICBvbmx5KS4gQXQvYWJvdmUgdGhlIHJ1biBmbG9vciBidXQgYmVsb3cgdGhpcywgdGhlIGFwcCBydW5zIGJ1dCBpcyBiZWxvd1xuICogICBPYnNpZGlhbidzIHJlY29tbWVuZGF0aW9uIChgJ25hZ2dlZCdgKSwgc3VyZmFjZWQgYXMgYSB3YXJuaW5nLlxuICpcbiAqIFdoZW4gdGhlIGluc3RhbGxlciB2ZXJzaW9uIGlzIHVua25vd24gKGUuZy4gYW4gdW5kZXRlY3RhYmxlIExpbnV4IHNoZWxsKSBvciB0aGVcbiAqIGFwcCB2ZXJzaW9uIGlzIGFic2VudCBmcm9tIHRoZSB0YWJsZSwgdGhlIHZlcmRpY3QgaXMgYCd1bmtub3duJ2AgYW5kIG5vdGhpbmcgaXNcbiAqIHRocm93biBvciB3YXJuZWQgXHUyMDE0IHRoZSByZWFjdGl2ZSBkZWFkLWJvb3QgZmFzdC1mYWlsIHJlbWFpbnMgdGhlIHNhZmV0eSBuZXQuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBPYnNpZGlhblZlcnNpb25NZXRhZGF0YSB9IGZyb20gJy4vb2JzaWRpYW4tbWV0YWRhdGEuY2pzJztcblxuaW1wb3J0IHsgY29tcGFyZVZlcnNpb25zIH0gZnJvbSAnLi9vYnNpZGlhbi12ZXJzaW9uLmNqcyc7XG5cbi8qKlxuICogVGhlIGNvbXBhdGliaWxpdHkgdmVyZGljdCBmb3IgYSByZXNvbHZlZCAoYXBwLCBpbnN0YWxsZXIpIHZlcnNpb24gcGFpciwgY2FycmllZFxuICogYXMgZGF0YSBvbiB0aGUgdHJhbnNwb3J0IC8gY29ubmVjdGlvbiByZXN1bHQgc28gY29uc3VtZXJzIGNhbiBhc3NlcnQgb24gaXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5zdGFsbGVyQ29tcGF0aWJpbGl0eSB7XG4gIC8qKlxuICBUaGUgcmVzb2x2ZWQgT2JzaWRpYW4gYXBwIChhc2FyKSB2ZXJzaW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwVmVyc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICBUaGUgcmVzb2x2ZWQgaW5zdGFsbGVyL0VsZWN0cm9uIHNoZWxsIHZlcnNpb24sIG9yIGBudWxsYCB3aGVuIHVua25vd24uXG4gICAqL1xuICByZWFkb25seSBpbnN0YWxsZXJWZXJzaW9uOiBudWxsIHwgc3RyaW5nO1xuXG4gIC8qKlxuICBBIGh1bWFuLXJlYWRhYmxlIGV4cGxhbmF0aW9uLCBwcmVzZW50IGZvciB0aGUgYCduYWdnZWQnYCB0aWVyLlxuICAgKi9cbiAgcmVhZG9ubHkgbWVzc2FnZT86IHN0cmluZztcblxuICAvKipcbiAgVGhlIHJlY29tbWVuZGVkIGluc3RhbGxlciBmbG9vciwgd2hlbiB0aGUgdGFibGUgY2FycmllcyBvbmUuXG4gICAqL1xuICByZWFkb25seSBtaW5SZWNvbW1lbmRlZEluc3RhbGxlclZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gIFRoZSBydW4gZmxvb3IsIHdoZW4gdGhlIHRhYmxlIGNhcnJpZXMgb25lLlxuICAgKi9cbiAgcmVhZG9ubHkgbWluUnVubmFibGVJbnN0YWxsZXJWZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICBUaGUgcmVzb2x2ZWQgY29tcGF0aWJpbGl0eSB0aWVyLlxuICAgKi9cbiAgcmVhZG9ubHkgdGllcjogSW5zdGFsbGVyQ29tcGF0aWJpbGl0eVRpZXI7XG59XG5cbi8qKlxuICogVGhlIGNvbXBhdGliaWxpdHkgdGllciBvZiBhIHJlc29sdmVkIChhcHAsIGluc3RhbGxlcikgdmVyc2lvbiBwYWlyLlxuICpcbiAqIC0gYCdvaydgIFx1MjAxNCB0aGUgaW5zdGFsbGVyIGlzIGF0IG9yIGFib3ZlIHRoZSByZWNvbW1lbmRlZCBmbG9vciAob3Igbm9cbiAqICAgcmVjb21tZW5kZWQgZmxvb3IgaXMga25vd24pOyBydW5zIHdpdGggZnVsbCBjb21wYXRpYmlsaXR5LlxuICogLSBgJ25hZ2dlZCdgIFx1MjAxNCBhdC9hYm92ZSB0aGUgcnVuIGZsb29yIGJ1dCBiZWxvdyB0aGUgcmVjb21tZW5kZWQgZmxvb3I7IHJ1bnMgYnV0XG4gKiAgIE9ic2lkaWFuIHdvdWxkIHNob3cgaXRzIFwiaW5zdGFsbGVyIHRvbyBvbGRcIiByZWNvbW1lbmRhdGlvbi5cbiAqIC0gYCd1bnJ1bm5hYmxlJ2AgXHUyMDE0IGJlbG93IHRoZSBydW4gZmxvb3I7IHRoZSBhcHAgY2Fubm90IGJvb3Qgb24gdGhpcyBpbnN0YWxsZXIuXG4gKiAtIGAndW5rbm93bidgIFx1MjAxNCBjYW5ub3QgYmUgZGV0ZXJtaW5lZCAoaW5zdGFsbGVyIHZlcnNpb24gdW5rbm93biwgb3IgdGhlIGFwcFxuICogICB2ZXJzaW9uIGlzIGFic2VudCBmcm9tIHRoZSB0YWJsZSkuXG4gKi9cbmV4cG9ydCB0eXBlIEluc3RhbGxlckNvbXBhdGliaWxpdHlUaWVyID0gJ25hZ2dlZCcgfCAnb2snIHwgJ3Vua25vd24nIHwgJ3VucnVubmFibGUnO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayByZXNvbHZlSW5zdGFsbGVyQ29tcGF0aWJpbGl0eX0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb2x2ZUluc3RhbGxlckNvbXBhdGliaWxpdHlQYXJhbXMge1xuICAvKipcbiAgVGhlIHJlc29sdmVkIE9ic2lkaWFuIGFwcCAoYXNhcikgdmVyc2lvbi5cbiAgICovXG4gIHJlYWRvbmx5IGFwcFZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgVGhlIHJlc29sdmVkIGluc3RhbGxlci9FbGVjdHJvbiBzaGVsbCB2ZXJzaW9uLCBvciBgdW5kZWZpbmVkYCB3aGVuIHVua25vd24uXG4gICAqL1xuICByZWFkb25seSBpbnN0YWxsZXJWZXJzaW9uOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gIFRoZSBgbWV0YWRhdGEuanNvbmAgZW50cnkgZm9yIHtAbGluayBhcHBWZXJzaW9ufSwgb3IgYHVuZGVmaW5lZGAgd2hlbiBhYnNlbnQuXG4gICAqL1xuICByZWFkb25seSBtZXRhZGF0YTogT2JzaWRpYW5WZXJzaW9uTWV0YWRhdGEgfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogQ29tcHV0ZXMgdGhlIGNvbXBhdGliaWxpdHkgdmVyZGljdCBmb3IgYSByZXNvbHZlZCAoYXBwLCBpbnN0YWxsZXIpIHZlcnNpb24gcGFpci5cbiAqXG4gKiBPbmx5IGAndW5ydW5uYWJsZSdgIHdhcnJhbnRzIGFuIGVycm9yOyBgJ25hZ2dlZCdgIHdhcnJhbnRzIGEgd2FybmluZzsgYCdvaydgIGFuZFxuICogYCd1bmtub3duJ2AgYXJlIHNpbGVudC4gQ29tcGFyaXNvbnMgYXJlIHB1cmUgYHgueS56YCB2ZXJzaW9uIGNvbXBhcmVzIFx1MjAxNCBubyBJL08uXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSByZXNvbHZlZCB2ZXJzaW9ucyBhbmQgdGhlIGFwcCB2ZXJzaW9uJ3MgbWV0YWRhdGEgZW50cnkuXG4gKiBAcmV0dXJucyBUaGUgY29tcGF0aWJpbGl0eSB2ZXJkaWN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUluc3RhbGxlckNvbXBhdGliaWxpdHkocGFyYW1zOiBSZXNvbHZlSW5zdGFsbGVyQ29tcGF0aWJpbGl0eVBhcmFtcyk6IEluc3RhbGxlckNvbXBhdGliaWxpdHkge1xuICBjb25zdCB7IGFwcFZlcnNpb24sIGluc3RhbGxlclZlcnNpb24sIG1ldGFkYXRhIH0gPSBwYXJhbXM7XG4gIGNvbnN0IG1pblJ1bm5hYmxlSW5zdGFsbGVyVmVyc2lvbiA9IG1ldGFkYXRhPy5taW5SdW5uYWJsZUluc3RhbGxlclZlcnNpb247XG4gIGNvbnN0IG1pblJlY29tbWVuZGVkSW5zdGFsbGVyVmVyc2lvbiA9IG1ldGFkYXRhPy5taW5SZWNvbW1lbmRlZEluc3RhbGxlclZlcnNpb247XG5cbiAgaWYgKGluc3RhbGxlclZlcnNpb24gPT09IHVuZGVmaW5lZCB8fCBtaW5SdW5uYWJsZUluc3RhbGxlclZlcnNpb24gPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB7IGFwcFZlcnNpb24sIGluc3RhbGxlclZlcnNpb246IGluc3RhbGxlclZlcnNpb24gPz8gbnVsbCwgdGllcjogJ3Vua25vd24nIH07XG4gIH1cblxuICBjb25zdCByZWNvbW1lbmRlZEZsb29yID0gbWluUmVjb21tZW5kZWRJbnN0YWxsZXJWZXJzaW9uICE9PSB1bmRlZmluZWQgJiYgeyBtaW5SZWNvbW1lbmRlZEluc3RhbGxlclZlcnNpb24gfTtcblxuICBpZiAoY29tcGFyZVZlcnNpb25zKGluc3RhbGxlclZlcnNpb24sIG1pblJ1bm5hYmxlSW5zdGFsbGVyVmVyc2lvbikgPCAwKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFwcFZlcnNpb24sXG4gICAgICBpbnN0YWxsZXJWZXJzaW9uLFxuICAgICAgbWluUnVubmFibGVJbnN0YWxsZXJWZXJzaW9uLFxuICAgICAgdGllcjogJ3VucnVubmFibGUnLFxuICAgICAgLi4ucmVjb21tZW5kZWRGbG9vclxuICAgIH07XG4gIH1cblxuICByZXR1cm4gbWluUmVjb21tZW5kZWRJbnN0YWxsZXJWZXJzaW9uICE9PSB1bmRlZmluZWQgJiYgY29tcGFyZVZlcnNpb25zKGluc3RhbGxlclZlcnNpb24sIG1pblJlY29tbWVuZGVkSW5zdGFsbGVyVmVyc2lvbikgPCAwXG4gICAgPyB7XG4gICAgICBhcHBWZXJzaW9uLFxuICAgICAgaW5zdGFsbGVyVmVyc2lvbixcbiAgICAgIG1lc3NhZ2U6IGBPYnNpZGlhbiBpbnN0YWxsZXIgJHtpbnN0YWxsZXJWZXJzaW9ufSBydW5zIE9ic2lkaWFuICR7YXBwVmVyc2lvbn0gYnV0IGlzIG9sZGVyIHRoYW4gdGhlIGBcbiAgICAgICAgKyBgcmVjb21tZW5kZWQgaW5zdGFsbGVyICR7bWluUmVjb21tZW5kZWRJbnN0YWxsZXJWZXJzaW9ufTsgdXBkYXRlIHRoZSBpbnN0YWxsZXIgZm9yIGZ1bGwgY29tcGF0aWJpbGl0eS5gLFxuICAgICAgbWluUmVjb21tZW5kZWRJbnN0YWxsZXJWZXJzaW9uLFxuICAgICAgbWluUnVubmFibGVJbnN0YWxsZXJWZXJzaW9uLFxuICAgICAgdGllcjogJ25hZ2dlZCdcbiAgICB9XG4gICAgOiB7XG4gICAgICBhcHBWZXJzaW9uLFxuICAgICAgaW5zdGFsbGVyVmVyc2lvbixcbiAgICAgIG1pblJ1bm5hYmxlSW5zdGFsbGVyVmVyc2lvbixcbiAgICAgIHRpZXI6ICdvaycsXG4gICAgICAuLi5yZWNvbW1lbmRlZEZsb29yXG4gICAgfTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUE2QkEsOEJBQWdDO0FBZ0Z6QixTQUFTLDhCQUE4QixRQUFxRTtBQUNqSCxRQUFNLEVBQUUsWUFBWSxrQkFBa0IsU0FBUyxJQUFJO0FBQ25ELFFBQU0sOEJBQThCLFVBQVU7QUFDOUMsUUFBTSxpQ0FBaUMsVUFBVTtBQUVqRCxNQUFJLHFCQUFxQixVQUFhLGdDQUFnQyxRQUFXO0FBQy9FLFdBQU8sRUFBRSxZQUFZLGtCQUFrQixvQkFBb0IsTUFBTSxNQUFNLFVBQVU7QUFBQSxFQUNuRjtBQUVBLFFBQU0sbUJBQW1CLG1DQUFtQyxVQUFhLEVBQUUsK0JBQStCO0FBRTFHLFVBQUkseUNBQWdCLGtCQUFrQiwyQkFBMkIsSUFBSSxHQUFHO0FBQ3RFLFdBQU87QUFBQSxNQUNMO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBLE1BQU07QUFBQSxNQUNOLEdBQUc7QUFBQSxJQUNMO0FBQUEsRUFDRjtBQUVBLFNBQU8sbUNBQW1DLGNBQWEseUNBQWdCLGtCQUFrQiw4QkFBOEIsSUFBSSxJQUN2SDtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQSxTQUFTLHNCQUFzQixnQkFBZ0Isa0JBQWtCLFVBQVUsZ0RBQzlDLDhCQUE4QjtBQUFBLElBQzNEO0FBQUEsSUFDQTtBQUFBLElBQ0EsTUFBTTtBQUFBLEVBQ1IsSUFDRTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0EsTUFBTTtBQUFBLElBQ04sR0FBRztBQUFBLEVBQ0w7QUFDSjsiLAogICJuYW1lcyI6IFtdCn0K
|
|
@@ -21,19 +21,35 @@ __export(label_screenshot_exports, {
|
|
|
21
21
|
buildLabelSvg: () => buildLabelSvg,
|
|
22
22
|
computeLabelBand: () => computeLabelBand,
|
|
23
23
|
escapeSvgText: () => escapeSvgText,
|
|
24
|
-
labelScreenshot: () => labelScreenshot
|
|
24
|
+
labelScreenshot: () => labelScreenshot,
|
|
25
|
+
measureLabelCaption: () => measureLabelCaption
|
|
25
26
|
});
|
|
26
27
|
module.exports = __toCommonJS(label_screenshot_exports);
|
|
28
|
+
var import_capture_screenshot = require("./capture-screenshot.cjs");
|
|
27
29
|
var import_sharp_loader = require("./sharp-loader.cjs");
|
|
28
30
|
const FONT_SIZE_RATIO = 0.034;
|
|
29
31
|
const BAND_HEIGHT_RATIO = 2.2;
|
|
30
32
|
const BAND_OPACITY = 0.94;
|
|
31
33
|
const MINIMUM_FONT_SIZE_IN_PIXELS = 18;
|
|
32
34
|
const MINIMUM_HEIGHT_RATIO = 0.075;
|
|
35
|
+
const SIDE_MARGIN_RATIO = 0.04;
|
|
33
36
|
const CENTER_DIVISOR = 2;
|
|
37
|
+
const FONT_FAMILY = "Segoe UI, Helvetica, Arial, sans-serif";
|
|
38
|
+
const FONT_WEIGHT = "600";
|
|
39
|
+
const CAPTION_FILL = "#ffffff";
|
|
40
|
+
const MAXIMUM_GLYPH_ADVANCE_RATIO = 1.1;
|
|
41
|
+
const MEASUREMENT_CANVAS_HEIGHT_RATIO = 3;
|
|
42
|
+
const TRIM_THRESHOLD = 1;
|
|
34
43
|
function buildLabelSvg(text, geometry, imageWidthInPixels) {
|
|
35
44
|
const { fontSizeInPixels, heightInPixels } = geometry;
|
|
36
|
-
|
|
45
|
+
const captionElement = buildCaptionTextElement({
|
|
46
|
+
fontSizeInPixels,
|
|
47
|
+
text,
|
|
48
|
+
textAnchor: "middle",
|
|
49
|
+
xInPixels: imageWidthInPixels / CENTER_DIVISOR,
|
|
50
|
+
yInPixels: heightInPixels / CENTER_DIVISOR
|
|
51
|
+
});
|
|
52
|
+
return `<svg xmlns="http://www.w3.org/2000/svg" width="${String(imageWidthInPixels)}" height="${String(heightInPixels)}"><rect x="0" y="0" width="${String(imageWidthInPixels)}" height="${String(heightInPixels)}" fill="#000000" fill-opacity="${String(BAND_OPACITY)}"/>${captionElement}</svg>`;
|
|
37
53
|
}
|
|
38
54
|
function computeLabelBand(params) {
|
|
39
55
|
const { imageHeightInPixels, imageWidthInPixels } = params;
|
|
@@ -47,7 +63,9 @@ function computeLabelBand(params) {
|
|
|
47
63
|
const captionHeightInPixels = Math.round(fontSizeInPixels * BAND_HEIGHT_RATIO);
|
|
48
64
|
const flooredHeightInPixels = Math.max(captionHeightInPixels, Math.round(imageHeightInPixels * MINIMUM_HEIGHT_RATIO));
|
|
49
65
|
const heightInPixels = Math.min(imageHeightInPixels, flooredHeightInPixels);
|
|
66
|
+
const sideMarginInPixels = Math.round(imageWidthInPixels * SIDE_MARGIN_RATIO);
|
|
50
67
|
return {
|
|
68
|
+
captionRoomInPixels: imageWidthInPixels - sideMarginInPixels * CENTER_DIVISOR,
|
|
51
69
|
fontSizeInPixels,
|
|
52
70
|
heightInPixels,
|
|
53
71
|
topInPixels: imageHeightInPixels - heightInPixels
|
|
@@ -65,6 +83,13 @@ async function labelScreenshot(bytes, options) {
|
|
|
65
83
|
throw new Error("labelScreenshot: could not read the source image dimensions.");
|
|
66
84
|
}
|
|
67
85
|
const geometry = computeLabelBand({ imageHeightInPixels, imageWidthInPixels });
|
|
86
|
+
const textWidthInPixels = await measureCaptionWidth(options.text, geometry.fontSizeInPixels);
|
|
87
|
+
if (textWidthInPixels > geometry.captionRoomInPixels) {
|
|
88
|
+
const overflowInPixels = textWidthInPixels - geometry.captionRoomInPixels;
|
|
89
|
+
throw new Error(
|
|
90
|
+
`labelScreenshot: the caption is ${String(overflowInPixels)}px too wide for the frame. It renders ${String(textWidthInPixels)}px at font-size ${String(geometry.fontSizeInPixels)}, and a ${String(imageWidthInPixels)}px frame has room for ${String(geometry.captionRoomInPixels)}px. Shorten it: a caption that does not fit is clipped at BOTH ends, with no ellipsis to show it happened. Caption: ${JSON.stringify(options.text)}`
|
|
91
|
+
);
|
|
92
|
+
}
|
|
68
93
|
const svg = buildLabelSvg(options.text, geometry, imageWidthInPixels);
|
|
69
94
|
const layer = {
|
|
70
95
|
input: Buffer.from(svg),
|
|
@@ -74,11 +99,45 @@ async function labelScreenshot(bytes, options) {
|
|
|
74
99
|
const labeled = await sharp(bytes).composite([layer]).png().toBuffer();
|
|
75
100
|
return new Uint8Array(labeled);
|
|
76
101
|
}
|
|
102
|
+
async function measureLabelCaption(params) {
|
|
103
|
+
const { imageHeightInPixels, imageWidthInPixels, text } = params;
|
|
104
|
+
const geometry = computeLabelBand({ imageHeightInPixels, imageWidthInPixels });
|
|
105
|
+
const textWidthInPixels = await measureCaptionWidth(text, geometry.fontSizeInPixels);
|
|
106
|
+
return {
|
|
107
|
+
captionRoomInPixels: geometry.captionRoomInPixels,
|
|
108
|
+
doesFit: textWidthInPixels <= geometry.captionRoomInPixels,
|
|
109
|
+
textWidthInPixels
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
function buildCaptionTextElement(params) {
|
|
113
|
+
const { fontSizeInPixels, text, textAnchor, xInPixels, yInPixels } = params;
|
|
114
|
+
return `<text x="${String(xInPixels)}" y="${String(yInPixels)}" font-family="${FONT_FAMILY}" font-size="${String(fontSizeInPixels)}" font-weight="${FONT_WEIGHT}" fill="${CAPTION_FILL}" text-anchor="${textAnchor}" dominant-baseline="central">${escapeSvgText(text)}</text>`;
|
|
115
|
+
}
|
|
116
|
+
async function measureCaptionWidth(text, fontSizeInPixels) {
|
|
117
|
+
if (text.trim() === "") {
|
|
118
|
+
return 0;
|
|
119
|
+
}
|
|
120
|
+
const sharp = await (0, import_sharp_loader.importSharp)("measureLabelCaption");
|
|
121
|
+
const paddingInPixels = fontSizeInPixels * CENTER_DIVISOR;
|
|
122
|
+
const canvasWidthInPixels = Math.ceil(fontSizeInPixels * MAXIMUM_GLYPH_ADVANCE_RATIO * text.length) + paddingInPixels;
|
|
123
|
+
const canvasHeightInPixels = Math.ceil(fontSizeInPixels * MEASUREMENT_CANVAS_HEIGHT_RATIO);
|
|
124
|
+
const captionElement = buildCaptionTextElement({
|
|
125
|
+
fontSizeInPixels,
|
|
126
|
+
text,
|
|
127
|
+
textAnchor: "start",
|
|
128
|
+
xInPixels: fontSizeInPixels,
|
|
129
|
+
yInPixels: canvasHeightInPixels / CENTER_DIVISOR
|
|
130
|
+
});
|
|
131
|
+
const svg = `<svg xmlns="http://www.w3.org/2000/svg" width="${String(canvasWidthInPixels)}" height="${String(canvasHeightInPixels)}">${captionElement}</svg>`;
|
|
132
|
+
const trimmed = await sharp(new Uint8Array(Buffer.from(svg))).trim({ threshold: TRIM_THRESHOLD }).png().toBuffer();
|
|
133
|
+
return (0, import_capture_screenshot.readPngDimensions)(new Uint8Array(trimmed)).widthInPixels;
|
|
134
|
+
}
|
|
77
135
|
// Annotate the CommonJS export names for ESM import in node:
|
|
78
136
|
0 && (module.exports = {
|
|
79
137
|
buildLabelSvg,
|
|
80
138
|
computeLabelBand,
|
|
81
139
|
escapeSvgText,
|
|
82
|
-
labelScreenshot
|
|
140
|
+
labelScreenshot,
|
|
141
|
+
measureLabelCaption
|
|
83
142
|
});
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2xhYmVsLXNjcmVlbnNob3QudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBBZGRzIGEgY2FwdGlvbiBiYW5kIHRvIGFuIGFscmVhZHktY2FwdHVyZWQgc2NyZWVuc2hvdC5cbiAqXG4gKiBBIHN0b3JlIGxpc3Rpbmcgc2hvd3Mgc2NyZWVuc2hvdHMgT05FIEFUIEEgVElNRSwgaW4gYSBjYXJvdXNlbCwgd2l0aCBub1xuICogY2FwdGlvbiBvZiBpdHMgb3duIFx1MjAxNCBzbyBhbiBpbWFnZSBoYXMgdG8gc2F5IHdoYXQgaXQgaXMgc2hvd2luZy4gV2l0aG91dCB0aGF0LFxuICogYSBzaG90IG9mIHRoZSBzdGF0ZSBhIHBsdWdpbiByZW1vdmVzIHJlYWRzIGFzIGEgc2hvdCBvZiB0aGUgc3RhdGUgdGhlIHBsdWdpblxuICogY2F1c2VzLCB3aGljaCBpcyB0aGUgb3Bwb3NpdGUgb2YgdGhlIG1lc3NhZ2UuXG4gKlxuICogVGhlIGJhbmQgaXMgZHJhd24gb3ZlciB0aGUgQk9UVE9NIG9mIHRoZSBmcmFtZSwgZm9yIHR3byByZWFzb25zOiB0aGUgdG9wIGlzXG4gKiB3aGVyZSB0aGUgY29udGVudCBiZWluZyBkZW1vbnN0cmF0ZWQgdXN1YWxseSBzdGFydHMsIGFuZCB0aGUgYm90dG9tIG9mIGFuXG4gKiBPYnNpZGlhbiBmcmFtZSBpcyBjaHJvbWUgXHUyMDE0IHN0YXR1cyBiYXIsIHdvcmQgY291bnQsIHN5bmMgaW5kaWNhdG9yIFx1MjAxNCB3aGljaCB0aGVcbiAqIGJhbmQgdGhlbiBjb3ZlcnMgcmF0aGVyIHRoYW4gY29tcGV0aW5nIHdpdGguXG4gKlxuICogVGhpcyBpcyBwb3N0LXByb2Nlc3NpbmcsIGRlbGliZXJhdGVseS4gVGhlIGNhcHR1cmUgc3RheXMgYW4gdW50b3VjaGVkIGRldmljZVxuICogZnJhbWUsIGFuZCByZXdvcmRpbmcgYSBsYWJlbCBuZWVkcyBubyByZS1zaG9vdC5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFNoYXJwQ29tcG9zaXRlTGF5ZXIgfSBmcm9tICcuL3NoYXJwLWxvYWRlci5janMnO1xuXG5pbXBvcnQgeyBpbXBvcnRTaGFycCB9IGZyb20gJy4vc2hhcnAtbG9hZGVyLmNqcyc7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGNvbXB1dGVMYWJlbEJhbmR9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbXB1dGVMYWJlbEJhbmRQYXJhbXMge1xuICAvKipcbiAgICogSGVpZ2h0IG9mIHRoZSBpbWFnZSBiZWluZyBsYWJlbGVkLCBpbiBwaXhlbHMuXG4gICAqL1xuICByZWFkb25seSBpbWFnZUhlaWdodEluUGl4ZWxzOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFdpZHRoIG9mIHRoZSBpbWFnZSBiZWluZyBsYWJlbGVkLCBpbiBwaXhlbHMuXG4gICAqL1xuICByZWFkb25seSBpbWFnZVdpZHRoSW5QaXhlbHM6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBUaGUgZ2VvbWV0cnkgb2YgdGhlIGNhcHRpb24gYmFuZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMYWJlbEJhbmRHZW9tZXRyeSB7XG4gIC8qKlxuICAgKiBGb250IHNpemUgZm9yIHRoZSBjYXB0aW9uLCBpbiBwaXhlbHMuXG4gICAqL1xuICByZWFkb25seSBmb250U2l6ZUluUGl4ZWxzOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEhlaWdodCBvZiB0aGUgYmFuZCwgaW4gcGl4ZWxzLlxuICAgKi9cbiAgcmVhZG9ubHkgaGVpZ2h0SW5QaXhlbHM6IG51bWJlcjtcblxuICAvKipcbiAgICogRGlzdGFuY2UgZnJvbSB0aGUgdG9wIG9mIHRoZSBpbWFnZSB0byB0aGUgdG9wIG9mIHRoZSBiYW5kLCBpbiBwaXhlbHMuXG4gICAqL1xuICByZWFkb25seSB0b3BJblBpeGVsczogbnVtYmVyO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBsYWJlbFNjcmVlbnNob3R9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExhYmVsU2NyZWVuc2hvdE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGNhcHRpb24uIEtlZXAgaXQgdG8gYSBoYW5kZnVsIG9mIHdvcmRzOiBpdCBpcyByZWFkIGF0IGxpc3RpbmctdGh1bWJuYWlsXG4gICAqIHNpemUsIGFuZCBpdCBpcyBjbGlwcGVkIHJhdGhlciB0aGFuIHdyYXBwZWQuXG4gICAqL1xuICByZWFkb25seSB0ZXh0OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ2FwdGlvbiBzaXplIGFzIGEgZnJhY3Rpb24gb2YgaW1hZ2UgV0lEVEgsIG5vdCBoZWlnaHQuXG4gKlxuICogV2lkdGggaXMgd2hhdCBnb3Zlcm5zIGxlZ2liaWxpdHkgaGVyZTogYSA5MDB4MTYwMCBwaG9uZSBmcmFtZSBhbmQgYSAxMjAweDgwMFxuICogZGVza3RvcCBmcmFtZSBhcmUgcmVhZCBhdCBzaW1pbGFyIG9uLXNjcmVlbiB3aWR0aHMgaW4gYSBsaXN0aW5nLCBzbyBzaXppbmcgYnlcbiAqIHdpZHRoIGtlZXBzIHRoZSBjYXB0aW9uIHZpc3VhbGx5IGNvbnNpc3RlbnQgYWNyb3NzIHRoZSB0d28uXG4gKi9cbmNvbnN0IEZPTlRfU0laRV9SQVRJTyA9IDAuMDM0O1xuXG4vKipcbiAqIEJhbmQgaGVpZ2h0IGFzIGEgbXVsdGlwbGUgb2YgdGhlIGZvbnQgc2l6ZSBcdTIwMTQgZW5vdWdoIHRvIHNpdCB0aGUgdGV4dCBvbiB3aXRoXG4gKiBjbGVhciBzcGFjZSBhYm92ZSBhbmQgYmVsb3cuXG4gKi9cbmNvbnN0IEJBTkRfSEVJR0hUX1JBVElPID0gMi4yO1xuXG4vKipcbiAqIE9wYWNpdHkgb2YgdGhlIGJhbmQuIE5lYXItb3BhcXVlIG9uIHB1cnBvc2U6IHRoZSBiYW5kIGV4aXN0cyBwYXJ0bHkgdG8gQ09WRVJcbiAqIHRoZSBjaHJvbWUgYWxvbmcgdGhlIGJvdHRvbSBvZiB0aGUgZnJhbWUsIGFuZCBhdCAwLjgyIGEgc3RhdHVzIGJhciBsZWdpYmx5XG4gKiBibGVkIHRocm91Z2ggYmVoaW5kIHRoZSBjYXB0aW9uLCB3aGljaCBsb29rZWQgbGlrZSBhIG1pc3Rha2UgcmF0aGVyIHRoYW4gYVxuICogZGVzaWduLlxuICovXG5jb25zdCBCQU5EX09QQUNJVFkgPSAwLjk0O1xuXG5jb25zdCBNSU5JTVVNX0ZPTlRfU0laRV9JTl9QSVhFTFMgPSAxODtcblxuLyoqXG4gKiBGbG9vciBvbiBiYW5kIGhlaWdodCBhcyBhIGZyYWN0aW9uIG9mIGltYWdlIEhFSUdIVC5cbiAqXG4gKiBIZWlnaHQgZGVyaXZlZCBmcm9tIHRoZSBjYXB0aW9uIGFsb25lIGlzIHRvbyBzaGFsbG93IG9uIGEgdGFsbCBmcmFtZTogb24gYVxuICogOTAweDE2MDAgcGhvbmUgaXQgY2FtZSB0byA2OHB4IGFuZCBzbGljZWQgdGhyb3VnaCB0aGUgc3RhdHVzIHJvdyBpdCB3YXMgbWVhbnRcbiAqIHRvIGNvdmVyLCBjbGlwcGluZyB0aGUgdGV4dCBtaWQtbGluZS4gVGhpcyBmbG9vciBtYWtlcyB0aGUgYmFuZCBkZWVwIGVub3VnaCB0b1xuICogc3dhbGxvdyB0aGF0IHJvdyB3aG9sZSAoMTIwcHggb24gYSA5MDB4MTYwMCBwaG9uZSksIGFuZCBpcyBpbmVydCBvbiBhIHdpZGUgZnJhbWUgd2hlcmUgdGhlIGNhcHRpb24tZGVyaXZlZFxuICogaGVpZ2h0IGlzIGFscmVhZHkgdGhlIGxhcmdlciBvZiB0aGUgdHdvLlxuICovXG5jb25zdCBNSU5JTVVNX0hFSUdIVF9SQVRJTyA9IDAuMDc1O1xuXG4vKipcbiAqIERpdmlzb3IgdGhhdCB0dXJucyBhIHNwYW4gaW50byBpdHMgbWlkcG9pbnQsIGZvciBjZW50ZXJpbmcgdGhlIGNhcHRpb24uXG4gKi9cbmNvbnN0IENFTlRFUl9ESVZJU09SID0gMjtcblxuLyoqXG4gKiBCdWlsZHMgdGhlIFNWRyBmb3IgdGhlIGNhcHRpb24gYmFuZC5cbiAqXG4gKiBAcGFyYW0gdGV4dCAtIFRoZSBjYXB0aW9uLlxuICogQHBhcmFtIGdlb21ldHJ5IC0gVGhlIGJhbmQgZ2VvbWV0cnkuXG4gKiBAcGFyYW0gaW1hZ2VXaWR0aEluUGl4ZWxzIC0gV2lkdGggb2YgdGhlIGltYWdlLCBzbyB0aGUgYmFuZCBzcGFucyBpdC5cbiAqIEByZXR1cm5zIFRoZSBTVkcgbWFya3VwLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRMYWJlbFN2Zyh0ZXh0OiBzdHJpbmcsIGdlb21ldHJ5OiBMYWJlbEJhbmRHZW9tZXRyeSwgaW1hZ2VXaWR0aEluUGl4ZWxzOiBudW1iZXIpOiBzdHJpbmcge1xuICBjb25zdCB7IGZvbnRTaXplSW5QaXhlbHMsIGhlaWdodEluUGl4ZWxzIH0gPSBnZW9tZXRyeTtcblxuICByZXR1cm4gYDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiJHtTdHJpbmcoaW1hZ2VXaWR0aEluUGl4ZWxzKX1cIiBoZWlnaHQ9XCIke1N0cmluZyhoZWlnaHRJblBpeGVscyl9XCI+YFxuICAgICsgYDxyZWN0IHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIiR7U3RyaW5nKGltYWdlV2lkdGhJblBpeGVscyl9XCIgaGVpZ2h0PVwiJHtTdHJpbmcoaGVpZ2h0SW5QaXhlbHMpfVwiIGBcbiAgICArIGBmaWxsPVwiIzAwMDAwMFwiIGZpbGwtb3BhY2l0eT1cIiR7U3RyaW5nKEJBTkRfT1BBQ0lUWSl9XCIvPmBcbiAgICArIGA8dGV4dCB4PVwiJHtTdHJpbmcoaW1hZ2VXaWR0aEluUGl4ZWxzIC8gQ0VOVEVSX0RJVklTT1IpfVwiIHk9XCIke1N0cmluZyhoZWlnaHRJblBpeGVscyAvIENFTlRFUl9ESVZJU09SKX1cIiBgXG4gICAgKyBgZm9udC1mYW1pbHk9XCJTZWdvZSBVSSwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZlwiIGZvbnQtc2l6ZT1cIiR7U3RyaW5nKGZvbnRTaXplSW5QaXhlbHMpfVwiIGBcbiAgICArICdmb250LXdlaWdodD1cIjYwMFwiIGZpbGw9XCIjZmZmZmZmXCIgdGV4dC1hbmNob3I9XCJtaWRkbGVcIiBkb21pbmFudC1iYXNlbGluZT1cImNlbnRyYWxcIj4nXG4gICAgKyBgJHtlc2NhcGVTdmdUZXh0KHRleHQpfTwvdGV4dD48L3N2Zz5gO1xufVxuXG4vKipcbiAqIENvbXB1dGVzIHRoZSBjYXB0aW9uIGJhbmQncyBzaXplIGFuZCBwb3NpdGlvbiBmb3IgYSBnaXZlbiBpbWFnZS5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIGltYWdlIGRpbWVuc2lvbnMuXG4gKiBAcmV0dXJucyBUaGUgYmFuZCBnZW9tZXRyeS5cbiAqIEB0aHJvd3MgRXJyb3IgaWYgZWl0aGVyIGRpbWVuc2lvbiBpcyBub3QgYSBwb3NpdGl2ZSBudW1iZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21wdXRlTGFiZWxCYW5kKHBhcmFtczogQ29tcHV0ZUxhYmVsQmFuZFBhcmFtcyk6IExhYmVsQmFuZEdlb21ldHJ5IHtcbiAgY29uc3QgeyBpbWFnZUhlaWdodEluUGl4ZWxzLCBpbWFnZVdpZHRoSW5QaXhlbHMgfSA9IHBhcmFtcztcblxuICBpZiAoIU51bWJlci5pc0Zpbml0ZShpbWFnZVdpZHRoSW5QaXhlbHMpIHx8IGltYWdlV2lkdGhJblBpeGVscyA8PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBjb21wdXRlTGFiZWxCYW5kOiBpbWFnZVdpZHRoSW5QaXhlbHMgbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlciwgZ290ICR7U3RyaW5nKGltYWdlV2lkdGhJblBpeGVscyl9LmApO1xuICB9XG5cbiAgaWYgKCFOdW1iZXIuaXNGaW5pdGUoaW1hZ2VIZWlnaHRJblBpeGVscykgfHwgaW1hZ2VIZWlnaHRJblBpeGVscyA8PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBjb21wdXRlTGFiZWxCYW5kOiBpbWFnZUhlaWdodEluUGl4ZWxzIG11c3QgYmUgYSBwb3NpdGl2ZSBudW1iZXIsIGdvdCAke1N0cmluZyhpbWFnZUhlaWdodEluUGl4ZWxzKX0uYCk7XG4gIH1cblxuICBjb25zdCBmb250U2l6ZUluUGl4ZWxzID0gTWF0aC5tYXgoTUlOSU1VTV9GT05UX1NJWkVfSU5fUElYRUxTLCBNYXRoLnJvdW5kKGltYWdlV2lkdGhJblBpeGVscyAqIEZPTlRfU0laRV9SQVRJTykpO1xuICBjb25zdCBjYXB0aW9uSGVpZ2h0SW5QaXhlbHMgPSBNYXRoLnJvdW5kKGZvbnRTaXplSW5QaXhlbHMgKiBCQU5EX0hFSUdIVF9SQVRJTyk7XG4gIGNvbnN0IGZsb29yZWRIZWlnaHRJblBpeGVscyA9IE1hdGgubWF4KGNhcHRpb25IZWlnaHRJblBpeGVscywgTWF0aC5yb3VuZChpbWFnZUhlaWdodEluUGl4ZWxzICogTUlOSU1VTV9IRUlHSFRfUkFUSU8pKTtcbiAgY29uc3QgaGVpZ2h0SW5QaXhlbHMgPSBNYXRoLm1pbihpbWFnZUhlaWdodEluUGl4ZWxzLCBmbG9vcmVkSGVpZ2h0SW5QaXhlbHMpO1xuXG4gIHJldHVybiB7XG4gICAgZm9udFNpemVJblBpeGVscyxcbiAgICBoZWlnaHRJblBpeGVscyxcbiAgICB0b3BJblBpeGVsczogaW1hZ2VIZWlnaHRJblBpeGVscyAtIGhlaWdodEluUGl4ZWxzXG4gIH07XG59XG5cbi8qKlxuICogRXNjYXBlcyB0ZXh0IGZvciBpbmNsdXNpb24gaW4gU1ZHIGNoYXJhY3RlciBkYXRhLlxuICpcbiAqIEEgY2FwdGlvbiBpcyBhdXRob3JlZCBwZXIgc2NyZWVuc2hvdCBhbmQgY2FuIGxlZ2l0aW1hdGVseSBjb250YWluIGAmYCBvciB0aGVcbiAqIGFuZ2xlIGJyYWNrZXRzIE9ic2lkaWFuIHVzZXMgaW4gbGluayBzeW50YXg7IHVuZXNjYXBlZCwgdGhvc2UgbWFrZSB0aGUgU1ZHXG4gKiBpbXBvc3NpYmxlIHRvIHBhcnNlIGFuZCBgc2hhcnBgIGZhaWxzIG9uIGEgY2FwdGlvbiByYXRoZXIgdGhhbiBvbiBhbiBpbWFnZS5cbiAqXG4gKiBAcGFyYW0gdGV4dCAtIFRoZSByYXcgY2FwdGlvbi5cbiAqIEByZXR1cm5zIFRoZSBjYXB0aW9uLCBzYWZlIHRvIGVtYmVkIGluIFNWRy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVzY2FwZVN2Z1RleHQodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHRleHRcbiAgICAucmVwbGFjZUFsbCgnJicsICcmYW1wOycpXG4gICAgLnJlcGxhY2VBbGwoJzwnLCAnJmx0OycpXG4gICAgLnJlcGxhY2VBbGwoJz4nLCAnJmd0OycpXG4gICAgLnJlcGxhY2VBbGwoJ1wiJywgJyZxdW90OycpXG4gICAgLnJlcGxhY2VBbGwoJ1xcJycsICcmYXBvczsnKTtcbn1cblxuLyoqXG4gKiBEcmF3cyBhIGNhcHRpb24gYmFuZCBhY3Jvc3MgdGhlIGJvdHRvbSBvZiBhIHNjcmVlbnNob3QuXG4gKlxuICogVGhlIGltYWdlIGtlZXBzIGl0cyBkaW1lbnNpb25zIGV4YWN0bHk6IHRoZSBiYW5kIGlzIGNvbXBvc2l0ZWQgT1ZFUiB0aGVcbiAqIGZyYW1lLCBuZXZlciBhcHBlbmRlZCB0byBpdCwgYmVjYXVzZSB0aGUgc3RvcmUgZXhwZWN0cyBhIHNwZWNpZmljIHNpemUuXG4gKlxuICogQHBhcmFtIGJ5dGVzIC0gVGhlIGNhcHR1cmVkIFBORy5cbiAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIGNhcHRpb24uXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIHRoZSBsYWJlbGVkIFBORywgdGhlIHNhbWUgc2l6ZSBhcyB0aGUgaW5wdXQuXG4gKiBAdGhyb3dzIEVycm9yIGlmIGBzaGFycGAgaXMgbm90IGluc3RhbGxlZCwgb3IgdGhlIGltYWdlIGRpbWVuc2lvbnMgY2Fubm90IGJlIHJlYWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsYWJlbFNjcmVlbnNob3QoYnl0ZXM6IFVpbnQ4QXJyYXksIG9wdGlvbnM6IExhYmVsU2NyZWVuc2hvdE9wdGlvbnMpOiBQcm9taXNlPFVpbnQ4QXJyYXk+IHtcbiAgY29uc3Qgc2hhcnAgPSBhd2FpdCBpbXBvcnRTaGFycCgnbGFiZWxTY3JlZW5zaG90Jyk7XG4gIGNvbnN0IG1ldGFkYXRhID0gYXdhaXQgc2hhcnAoYnl0ZXMpLm1ldGFkYXRhKCk7XG4gIGNvbnN0IGltYWdlV2lkdGhJblBpeGVscyA9IG1ldGFkYXRhLndpZHRoO1xuICBjb25zdCBpbWFnZUhlaWdodEluUGl4ZWxzID0gbWV0YWRhdGEuaGVpZ2h0O1xuXG4gIC8qIHY4IGlnbm9yZSBuZXh0IDMgLS0gRGVmZW5zaXZlOiBgc2hhcnBgIHJlamVjdHMgYSBub24taW1hZ2UgYmVmb3JlIGl0IGNhbiByZXBvcnQgbWV0YWRhdGEgd2l0aG91dCBkaW1lbnNpb25zLCBzbyB0aGlzIGJyYW5jaCBpcyB1bnJlYWNoYWJsZSBmcm9tIGEgdGVzdC4gKi9cbiAgaWYgKGltYWdlV2lkdGhJblBpeGVscyA9PT0gdW5kZWZpbmVkIHx8IGltYWdlSGVpZ2h0SW5QaXhlbHMgPT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFcnJvcignbGFiZWxTY3JlZW5zaG90OiBjb3VsZCBub3QgcmVhZCB0aGUgc291cmNlIGltYWdlIGRpbWVuc2lvbnMuJyk7XG4gIH1cblxuICBjb25zdCBnZW9tZXRyeSA9IGNvbXB1dGVMYWJlbEJhbmQoeyBpbWFnZUhlaWdodEluUGl4ZWxzLCBpbWFnZVdpZHRoSW5QaXhlbHMgfSk7XG4gIGNvbnN0IHN2ZyA9IGJ1aWxkTGFiZWxTdmcob3B0aW9ucy50ZXh0LCBnZW9tZXRyeSwgaW1hZ2VXaWR0aEluUGl4ZWxzKTtcbiAgY29uc3QgbGF5ZXI6IFNoYXJwQ29tcG9zaXRlTGF5ZXIgPSB7XG4gICAgaW5wdXQ6IEJ1ZmZlci5mcm9tKHN2ZyksXG4gICAgbGVmdDogMCxcbiAgICB0b3A6IGdlb21ldHJ5LnRvcEluUGl4ZWxzXG4gIH07XG5cbiAgY29uc3QgbGFiZWxlZCA9IGF3YWl0IHNoYXJwKGJ5dGVzKVxuICAgIC5jb21wb3NpdGUoW2xheWVyXSlcbiAgICAucG5nKClcbiAgICAudG9CdWZmZXIoKTtcblxuICByZXR1cm4gbmV3IFVpbnQ4QXJyYXkobGFiZWxlZCk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FB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
|
|
143
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2xhYmVsLXNjcmVlbnNob3QudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBBZGRzIGEgY2FwdGlvbiBiYW5kIHRvIGFuIGFscmVhZHktY2FwdHVyZWQgc2NyZWVuc2hvdC5cbiAqXG4gKiBBIHN0b3JlIGxpc3Rpbmcgc2hvd3Mgc2NyZWVuc2hvdHMgT05FIEFUIEEgVElNRSwgaW4gYSBjYXJvdXNlbCwgd2l0aCBub1xuICogY2FwdGlvbiBvZiBpdHMgb3duIFx1MjAxNCBzbyBhbiBpbWFnZSBoYXMgdG8gc2F5IHdoYXQgaXQgaXMgc2hvd2luZy4gV2l0aG91dCB0aGF0LFxuICogYSBzaG90IG9mIHRoZSBzdGF0ZSBhIHBsdWdpbiByZW1vdmVzIHJlYWRzIGFzIGEgc2hvdCBvZiB0aGUgc3RhdGUgdGhlIHBsdWdpblxuICogY2F1c2VzLCB3aGljaCBpcyB0aGUgb3Bwb3NpdGUgb2YgdGhlIG1lc3NhZ2UuXG4gKlxuICogVGhlIGJhbmQgaXMgZHJhd24gb3ZlciB0aGUgQk9UVE9NIG9mIHRoZSBmcmFtZSwgZm9yIHR3byByZWFzb25zOiB0aGUgdG9wIGlzXG4gKiB3aGVyZSB0aGUgY29udGVudCBiZWluZyBkZW1vbnN0cmF0ZWQgdXN1YWxseSBzdGFydHMsIGFuZCB0aGUgYm90dG9tIG9mIGFuXG4gKiBPYnNpZGlhbiBmcmFtZSBpcyBjaHJvbWUgXHUyMDE0IHN0YXR1cyBiYXIsIHdvcmQgY291bnQsIHN5bmMgaW5kaWNhdG9yIFx1MjAxNCB3aGljaCB0aGVcbiAqIGJhbmQgdGhlbiBjb3ZlcnMgcmF0aGVyIHRoYW4gY29tcGV0aW5nIHdpdGguXG4gKlxuICogVGhpcyBpcyBwb3N0LXByb2Nlc3NpbmcsIGRlbGliZXJhdGVseS4gVGhlIGNhcHR1cmUgc3RheXMgYW4gdW50b3VjaGVkIGRldmljZVxuICogZnJhbWUsIGFuZCByZXdvcmRpbmcgYSBsYWJlbCBuZWVkcyBubyByZS1zaG9vdC5cbiAqXG4gKiBBIGNhcHRpb24gdGhhdCBpcyB0b28gbG9uZyBmb3IgaXRzIGZyYW1lIGlzIE1FQVNVUkVEIGFuZCByZWplY3RlZCByYXRoZXIgdGhhblxuICogZHJhd24uIEFuIFNWRyBgPHRleHQ+YCBpcyBjbGlwcGVkIGJ5IGl0cyB2aWV3cG9ydCBhdCBib3RoIGVuZHMgd2l0aCBub1xuICogZWxsaXBzaXMgYW5kIG5vIGVycm9yLCBzbyBhbiBvdmVybG9uZyBjYXB0aW9uIHNoaXBzIGFzIGEgc2VudGVuY2UgZnJhZ21lbnRcbiAqIHRoYXQgbG9va3MgZGVsaWJlcmF0ZSBcdTIwMTQgYG5hYmxlZCBpbiBTZXR0aW5ncyAtIGEgbGlzdGVuaW5nIHBsdWdpbiBpcyB0b2xkYCBcdTIwMTRcbiAqIGFuZCB0aGUgZnJhbWUgaXMgc3RpbGwgZXhhY3RseSB0aGUgc2l6ZSBpdCBzaG91bGQgYmUsIHNvIGV2ZXJ5IGRpbWVuc2lvblxuICogYXNzZXJ0aW9uIGRvd25zdHJlYW0gc3RpbGwgcGFzc2VzLiBUaGUgb25seSBmZWVkYmFjayBhbnlvbmUgZXZlciBnb3Qgd2FzXG4gKiBsb29raW5nIGF0IHRoZSBQTkcuIFNlZSB7QGxpbmsgbWVhc3VyZUxhYmVsQ2FwdGlvbn0uXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBTaGFycENvbXBvc2l0ZUxheWVyIH0gZnJvbSAnLi9zaGFycC1sb2FkZXIuY2pzJztcblxuaW1wb3J0IHsgcmVhZFBuZ0RpbWVuc2lvbnMgfSBmcm9tICcuL2NhcHR1cmUtc2NyZWVuc2hvdC5janMnO1xuaW1wb3J0IHsgaW1wb3J0U2hhcnAgfSBmcm9tICcuL3NoYXJwLWxvYWRlci5janMnO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBjb21wdXRlTGFiZWxCYW5kfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb21wdXRlTGFiZWxCYW5kUGFyYW1zIHtcbiAgLyoqXG4gICAqIEhlaWdodCBvZiB0aGUgaW1hZ2UgYmVpbmcgbGFiZWxlZCwgaW4gcGl4ZWxzLlxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2VIZWlnaHRJblBpeGVsczogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBXaWR0aCBvZiB0aGUgaW1hZ2UgYmVpbmcgbGFiZWxlZCwgaW4gcGl4ZWxzLlxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2VXaWR0aEluUGl4ZWxzOiBudW1iZXI7XG59XG5cbi8qKlxuICogVGhlIGdlb21ldHJ5IG9mIHRoZSBjYXB0aW9uIGJhbmQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGFiZWxCYW5kR2VvbWV0cnkge1xuICAvKipcbiAgICogSG93IG11Y2ggaG9yaXpvbnRhbCByb29tIHRoZSBjYXB0aW9uIGhhcywgaW4gcGl4ZWxzOiB0aGUgaW1hZ2Ugd2lkdGggbGVzc1xuICAgKiB0aGUgbWFyZ2luIGhlbGQgY2xlYXIgYXQgZWFjaCBlbmQsIHNvIGEgY2FwdGlvbiB0aGF0IGZpdHMgZG9lcyBub3QgcmVhZCBhc1xuICAgKiB0aG91Z2ggaXQgd2VyZSBhYm91dCB0byB0b3VjaCB0aGUgZWRnZSBvZiB0aGUgZnJhbWUuXG4gICAqL1xuICByZWFkb25seSBjYXB0aW9uUm9vbUluUGl4ZWxzOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEZvbnQgc2l6ZSBmb3IgdGhlIGNhcHRpb24sIGluIHBpeGVscy5cbiAgICovXG4gIHJlYWRvbmx5IGZvbnRTaXplSW5QaXhlbHM6IG51bWJlcjtcblxuICAvKipcbiAgICogSGVpZ2h0IG9mIHRoZSBiYW5kLCBpbiBwaXhlbHMuXG4gICAqL1xuICByZWFkb25seSBoZWlnaHRJblBpeGVsczogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBEaXN0YW5jZSBmcm9tIHRoZSB0b3Agb2YgdGhlIGltYWdlIHRvIHRoZSB0b3Agb2YgdGhlIGJhbmQsIGluIHBpeGVscy5cbiAgICovXG4gIHJlYWRvbmx5IHRvcEluUGl4ZWxzOiBudW1iZXI7XG59XG5cbi8qKlxuICogV2hhdCBhIGNhcHRpb24gbWVhc3VyZXMgYWdhaW5zdCB0aGUgZnJhbWUgaXQgaXMgZGVzdGluZWQgZm9yLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExhYmVsQ2FwdGlvbk1lYXN1cmVtZW50IHtcbiAgLyoqXG4gICAqIFRoZSByb29tIGF2YWlsYWJsZSwgaW4gcGl4ZWxzIFx1MjAxNCB7QGxpbmsgTGFiZWxCYW5kR2VvbWV0cnkuY2FwdGlvblJvb21JblBpeGVsc30uXG4gICAqL1xuICByZWFkb25seSBjYXB0aW9uUm9vbUluUGl4ZWxzOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGNhcHRpb24gZml0cyB0aGF0IHJvb20uXG4gICAqL1xuICByZWFkb25seSBkb2VzRml0OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBIb3cgd2lkZSB0aGUgY2FwdGlvbiBhY3R1YWxseSByZW5kZXJzLCBpbiBwaXhlbHMsIGF0IHRoZSBzaXplIHRoZSBiYW5kXG4gICAqIHdvdWxkIGRyYXcgaXQuXG4gICAqL1xuICByZWFkb25seSB0ZXh0V2lkdGhJblBpeGVsczogbnVtYmVyO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBsYWJlbFNjcmVlbnNob3R9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExhYmVsU2NyZWVuc2hvdE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGNhcHRpb24uIEtlZXAgaXQgdG8gYSBoYW5kZnVsIG9mIHdvcmRzOiBpdCBpcyByZWFkIGF0IGxpc3RpbmctdGh1bWJuYWlsXG4gICAqIHNpemUsIGFuZCBpdCBpcyBuZWl0aGVyIHdyYXBwZWQgbm9yIHNocnVuayB0byBmaXQgXHUyMDE0IG9uZSB0aGF0IGRvZXMgbm90IGZpdFxuICAgKiBpcyBSRUpFQ1RFRCwgd2l0aCB0aGUgbWVhc3VyZWQgd2lkdGggYW5kIHRoZSByb29tIGF2YWlsYWJsZS4gQ2hlY2sgYVxuICAgKiBjYW5kaWRhdGUgd2l0aCB7QGxpbmsgbWVhc3VyZUxhYmVsQ2FwdGlvbn0gYmVmb3JlIGNvbW1pdHRpbmcgdG8gaXQuXG4gICAqL1xuICByZWFkb25seSB0ZXh0OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIG1lYXN1cmVMYWJlbENhcHRpb259LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1lYXN1cmVMYWJlbENhcHRpb25QYXJhbXMge1xuICAvKipcbiAgICogSGVpZ2h0IG9mIHRoZSBpbWFnZSB0aGUgY2FwdGlvbiBpcyBkZXN0aW5lZCBmb3IsIGluIHBpeGVscy5cbiAgICovXG4gIHJlYWRvbmx5IGltYWdlSGVpZ2h0SW5QaXhlbHM6IG51bWJlcjtcblxuICAvKipcbiAgICogV2lkdGggb2YgdGhlIGltYWdlIHRoZSBjYXB0aW9uIGlzIGRlc3RpbmVkIGZvciwgaW4gcGl4ZWxzLlxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2VXaWR0aEluUGl4ZWxzOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBjYXB0aW9uIHRvIG1lYXN1cmUuXG4gICAqL1xuICByZWFkb25seSB0ZXh0OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ2FwdGlvbiBzaXplIGFzIGEgZnJhY3Rpb24gb2YgaW1hZ2UgV0lEVEgsIG5vdCBoZWlnaHQuXG4gKlxuICogV2lkdGggaXMgd2hhdCBnb3Zlcm5zIGxlZ2liaWxpdHkgaGVyZTogYSA5MDB4MTYwMCBwaG9uZSBmcmFtZSBhbmQgYSAxMjAweDgwMFxuICogZGVza3RvcCBmcmFtZSBhcmUgcmVhZCBhdCBzaW1pbGFyIG9uLXNjcmVlbiB3aWR0aHMgaW4gYSBsaXN0aW5nLCBzbyBzaXppbmcgYnlcbiAqIHdpZHRoIGtlZXBzIHRoZSBjYXB0aW9uIHZpc3VhbGx5IGNvbnNpc3RlbnQgYWNyb3NzIHRoZSB0d28uXG4gKi9cbmNvbnN0IEZPTlRfU0laRV9SQVRJTyA9IDAuMDM0O1xuXG4vKipcbiAqIEJhbmQgaGVpZ2h0IGFzIGEgbXVsdGlwbGUgb2YgdGhlIGZvbnQgc2l6ZSBcdTIwMTQgZW5vdWdoIHRvIHNpdCB0aGUgdGV4dCBvbiB3aXRoXG4gKiBjbGVhciBzcGFjZSBhYm92ZSBhbmQgYmVsb3cuXG4gKi9cbmNvbnN0IEJBTkRfSEVJR0hUX1JBVElPID0gMi4yO1xuXG4vKipcbiAqIE9wYWNpdHkgb2YgdGhlIGJhbmQuIE5lYXItb3BhcXVlIG9uIHB1cnBvc2U6IHRoZSBiYW5kIGV4aXN0cyBwYXJ0bHkgdG8gQ09WRVJcbiAqIHRoZSBjaHJvbWUgYWxvbmcgdGhlIGJvdHRvbSBvZiB0aGUgZnJhbWUsIGFuZCBhdCAwLjgyIGEgc3RhdHVzIGJhciBsZWdpYmx5XG4gKiBibGVkIHRocm91Z2ggYmVoaW5kIHRoZSBjYXB0aW9uLCB3aGljaCBsb29rZWQgbGlrZSBhIG1pc3Rha2UgcmF0aGVyIHRoYW4gYVxuICogZGVzaWduLlxuICovXG5jb25zdCBCQU5EX09QQUNJVFkgPSAwLjk0O1xuXG5jb25zdCBNSU5JTVVNX0ZPTlRfU0laRV9JTl9QSVhFTFMgPSAxODtcblxuLyoqXG4gKiBGbG9vciBvbiBiYW5kIGhlaWdodCBhcyBhIGZyYWN0aW9uIG9mIGltYWdlIEhFSUdIVC5cbiAqXG4gKiBIZWlnaHQgZGVyaXZlZCBmcm9tIHRoZSBjYXB0aW9uIGFsb25lIGlzIHRvbyBzaGFsbG93IG9uIGEgdGFsbCBmcmFtZTogb24gYVxuICogOTAweDE2MDAgcGhvbmUgaXQgY2FtZSB0byA2OHB4IGFuZCBzbGljZWQgdGhyb3VnaCB0aGUgc3RhdHVzIHJvdyBpdCB3YXMgbWVhbnRcbiAqIHRvIGNvdmVyLCBjbGlwcGluZyB0aGUgdGV4dCBtaWQtbGluZS4gVGhpcyBmbG9vciBtYWtlcyB0aGUgYmFuZCBkZWVwIGVub3VnaCB0b1xuICogc3dhbGxvdyB0aGF0IHJvdyB3aG9sZSAoMTIwcHggb24gYSA5MDB4MTYwMCBwaG9uZSksIGFuZCBpcyBpbmVydCBvbiBhIHdpZGUgZnJhbWUgd2hlcmUgdGhlIGNhcHRpb24tZGVyaXZlZFxuICogaGVpZ2h0IGlzIGFscmVhZHkgdGhlIGxhcmdlciBvZiB0aGUgdHdvLlxuICovXG5jb25zdCBNSU5JTVVNX0hFSUdIVF9SQVRJTyA9IDAuMDc1O1xuXG4vKipcbiAqIE1hcmdpbiBoZWxkIGNsZWFyIGF0IEVBQ0ggZW5kIG9mIHRoZSBjYXB0aW9uLCBhcyBhIGZyYWN0aW9uIG9mIGltYWdlIHdpZHRoLlxuICpcbiAqIEEgY2FwdGlvbiB0aGF0IGVuZHMgYSBwaXhlbCBpbnNpZGUgdGhlIGZyYW1lIGlzIGxlZ2FsbHkgdW4tY2xpcHBlZCBhbmQgc3RpbGxcbiAqIGxvb2tzIHdyb25nLCBzbyB0aGUgcm9vbSBhIGNhcHRpb24gaXMgbWVhc3VyZWQgYWdhaW5zdCBpcyB0aGUgZnJhbWUgbGVzcyB0aGlzXG4gKiBhdCBib3RoIGVuZHMgXHUyMDE0IDQ4cHggZWFjaCBzaWRlIG9uIGEgMTIwMHB4IGZyYW1lLlxuICovXG5jb25zdCBTSURFX01BUkdJTl9SQVRJTyA9IDAuMDQ7XG5cbi8qKlxuICogRGl2aXNvciB0aGF0IHR1cm5zIGEgc3BhbiBpbnRvIGl0cyBtaWRwb2ludCwgZm9yIGNlbnRlcmluZyB0aGUgY2FwdGlvbi5cbiAqL1xuY29uc3QgQ0VOVEVSX0RJVklTT1IgPSAyO1xuXG4vKipcbiAqIFRoZSBjYXB0aW9uJ3MgdHlwZWZhY2UgYW5kIHdlaWdodCwgaW4gb25lIHBsYWNlIGJlY2F1c2UgdGhlIGJhbmQgYW5kIHRoZVxuICogbWVhc3VyZW1lbnQgY2FudmFzIE1VU1QgZHJhdyB3aXRoIHRoZSBzYW1lIG9uZXM6IGEgbWVhc3VyZW1lbnQgdGFrZW4gaW4gYVxuICogZGlmZmVyZW50IGZhY2UgaXMgbm90IGEgbWVhc3VyZW1lbnQgb2YgdGhlIHRoaW5nIHRoYXQgc2hpcHMuXG4gKi9cbmNvbnN0IEZPTlRfRkFNSUxZID0gJ1NlZ29lIFVJLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmJztcblxuY29uc3QgRk9OVF9XRUlHSFQgPSAnNjAwJztcblxuY29uc3QgQ0FQVElPTl9GSUxMID0gJyNmZmZmZmYnO1xuXG4vKipcbiAqIFVwcGVyIGJvdW5kIG9uIG9uZSBnbHlwaCdzIGFkdmFuY2Ugd2lkdGgsIGFzIGEgbXVsdGlwbGUgb2YgdGhlIGZvbnQgc2l6ZS5cbiAqXG4gKiBJdCBzaXplcyB0aGUgb2ZmLXNjcmVlbiBjYW52YXMgdGhlIGNhcHRpb24gaXMgbWVhc3VyZWQgb24sIGFuZCBpdCBvbmx5IGV2ZXJcbiAqIG5lZWRzIHRvIGJlIGFuIG92ZXItZXN0aW1hdGU6IGEgY2FudmFzIHRvbyBuYXJyb3cgd291bGQgY2xpcCB0aGUgdGV4dCBiZWluZ1xuICogbWVhc3VyZWQsIHVuZGVyLXJlcG9ydCBpdHMgd2lkdGgsIGFuZCByZWludHJvZHVjZSB0aGUgZXhhY3Qgc2lsZW50IGNsaXBwaW5nXG4gKiB0aGUgbWVhc3VyZW1lbnQgZXhpc3RzIHRvIGNhdGNoLiBObyBMYXRpbiBnbHlwaCBpbiBhIHByb3BvcnRpb25hbCBzYW5zXG4gKiBhZHZhbmNlcyBhIGZ1bGwgZW0gXHUyMDE0IGFuIGVtIGRhc2gsIHRoZSB3aWRlc3QsIGlzIDEuMCBcdTIwMTQgc28gMS4xIGlzIGhlYWRyb29tIGF0XG4gKiBuZWdsaWdpYmxlIGNvc3QgKG1lYXN1cmVkIHByb3NlIHJ1bnMgYWJvdXQgMC40NSBlbSBwZXIgY2hhcmFjdGVyLCBzbyB0aGVcbiAqIGNhbnZhcyBjb21lcyBvdXQgcm91Z2hseSAyLjV4IHRoZSB0ZXh0KS5cbiAqL1xuY29uc3QgTUFYSU1VTV9HTFlQSF9BRFZBTkNFX1JBVElPID0gMS4xO1xuXG4vKipcbiAqIEhlaWdodCBvZiB0aGUgbWVhc3VyZW1lbnQgY2FudmFzIGFzIGEgbXVsdGlwbGUgb2YgdGhlIGZvbnQgc2l6ZSwgc28gYXNjZW5kZXJzXG4gKiBhbmQgZGVzY2VuZGVycyBoYXZlIHJvb20gYW5kIHRoZSB0cmltIHJlYWRzIHRoZSBnbHlwaHMgcmF0aGVyIHRoYW4gdGhlIGVkZ2UuXG4gKi9cbmNvbnN0IE1FQVNVUkVNRU5UX0NBTlZBU19IRUlHSFRfUkFUSU8gPSAzO1xuXG4vKipcbiAqIEhvdyBmYXIgYSBwaXhlbCBtYXkgZGlmZmVyIGZyb20gdGhlIHRyYW5zcGFyZW50IHN1cnJvdW5kIGJlZm9yZSBgdHJpbWAgY291bnRzXG4gKiBpdCBhcyB0ZXh0LiBEZWxpYmVyYXRlbHkgZmFyIGxvd2VyIHRoYW4gYHNoYXJwYCdzIGRlZmF1bHQgb2YgMTA6IHRoZSBvdXRlcm1vc3RcbiAqIHBpeGVscyBvZiBhbiBhbnRpYWxpYXNlZCBnbHlwaCBhcmUgdmVyeSBmYWludCwgYW5kIHRoZSBkZWZhdWx0IGRpc2NhcmRzIHRoZW0sXG4gKiB1bmRlci1tZWFzdXJpbmcgYSBjYXB0aW9uIGJ5IGEgcGl4ZWwgb3IgdHdvIGF0IGVhY2ggZW5kLlxuICovXG5jb25zdCBUUklNX1RIUkVTSE9MRCA9IDE7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGJ1aWxkQ2FwdGlvblRleHRFbGVtZW50fS5cbiAqL1xuaW50ZXJmYWNlIENhcHRpb25UZXh0RWxlbWVudFBhcmFtcyB7XG4gIHJlYWRvbmx5IGZvbnRTaXplSW5QaXhlbHM6IG51bWJlcjtcbiAgcmVhZG9ubHkgdGV4dDogc3RyaW5nO1xuICByZWFkb25seSB0ZXh0QW5jaG9yOiAnbWlkZGxlJyB8ICdzdGFydCc7XG4gIHJlYWRvbmx5IHhJblBpeGVsczogbnVtYmVyO1xuICByZWFkb25seSB5SW5QaXhlbHM6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIFNWRyBmb3IgdGhlIGNhcHRpb24gYmFuZC5cbiAqXG4gKiBAcGFyYW0gdGV4dCAtIFRoZSBjYXB0aW9uLlxuICogQHBhcmFtIGdlb21ldHJ5IC0gVGhlIGJhbmQgZ2VvbWV0cnkuXG4gKiBAcGFyYW0gaW1hZ2VXaWR0aEluUGl4ZWxzIC0gV2lkdGggb2YgdGhlIGltYWdlLCBzbyB0aGUgYmFuZCBzcGFucyBpdC5cbiAqIEByZXR1cm5zIFRoZSBTVkcgbWFya3VwLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRMYWJlbFN2Zyh0ZXh0OiBzdHJpbmcsIGdlb21ldHJ5OiBMYWJlbEJhbmRHZW9tZXRyeSwgaW1hZ2VXaWR0aEluUGl4ZWxzOiBudW1iZXIpOiBzdHJpbmcge1xuICBjb25zdCB7IGZvbnRTaXplSW5QaXhlbHMsIGhlaWdodEluUGl4ZWxzIH0gPSBnZW9tZXRyeTtcbiAgY29uc3QgY2FwdGlvbkVsZW1lbnQgPSBidWlsZENhcHRpb25UZXh0RWxlbWVudCh7XG4gICAgZm9udFNpemVJblBpeGVscyxcbiAgICB0ZXh0LFxuICAgIHRleHRBbmNob3I6ICdtaWRkbGUnLFxuICAgIHhJblBpeGVsczogaW1hZ2VXaWR0aEluUGl4ZWxzIC8gQ0VOVEVSX0RJVklTT1IsXG4gICAgeUluUGl4ZWxzOiBoZWlnaHRJblBpeGVscyAvIENFTlRFUl9ESVZJU09SXG4gIH0pO1xuXG4gIHJldHVybiBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIke1N0cmluZyhpbWFnZVdpZHRoSW5QaXhlbHMpfVwiIGhlaWdodD1cIiR7U3RyaW5nKGhlaWdodEluUGl4ZWxzKX1cIj5gXG4gICAgKyBgPHJlY3QgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiJHtTdHJpbmcoaW1hZ2VXaWR0aEluUGl4ZWxzKX1cIiBoZWlnaHQ9XCIke1N0cmluZyhoZWlnaHRJblBpeGVscyl9XCIgYFxuICAgICsgYGZpbGw9XCIjMDAwMDAwXCIgZmlsbC1vcGFjaXR5PVwiJHtTdHJpbmcoQkFORF9PUEFDSVRZKX1cIi8+YFxuICAgICsgYCR7Y2FwdGlvbkVsZW1lbnR9PC9zdmc+YDtcbn1cblxuLyoqXG4gKiBDb21wdXRlcyB0aGUgY2FwdGlvbiBiYW5kJ3Mgc2l6ZSBhbmQgcG9zaXRpb24gZm9yIGEgZ2l2ZW4gaW1hZ2UuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBpbWFnZSBkaW1lbnNpb25zLlxuICogQHJldHVybnMgVGhlIGJhbmQgZ2VvbWV0cnkuXG4gKiBAdGhyb3dzIEVycm9yIGlmIGVpdGhlciBkaW1lbnNpb24gaXMgbm90IGEgcG9zaXRpdmUgbnVtYmVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29tcHV0ZUxhYmVsQmFuZChwYXJhbXM6IENvbXB1dGVMYWJlbEJhbmRQYXJhbXMpOiBMYWJlbEJhbmRHZW9tZXRyeSB7XG4gIGNvbnN0IHsgaW1hZ2VIZWlnaHRJblBpeGVscywgaW1hZ2VXaWR0aEluUGl4ZWxzIH0gPSBwYXJhbXM7XG5cbiAgaWYgKCFOdW1iZXIuaXNGaW5pdGUoaW1hZ2VXaWR0aEluUGl4ZWxzKSB8fCBpbWFnZVdpZHRoSW5QaXhlbHMgPD0gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgY29tcHV0ZUxhYmVsQmFuZDogaW1hZ2VXaWR0aEluUGl4ZWxzIG11c3QgYmUgYSBwb3NpdGl2ZSBudW1iZXIsIGdvdCAke1N0cmluZyhpbWFnZVdpZHRoSW5QaXhlbHMpfS5gKTtcbiAgfVxuXG4gIGlmICghTnVtYmVyLmlzRmluaXRlKGltYWdlSGVpZ2h0SW5QaXhlbHMpIHx8IGltYWdlSGVpZ2h0SW5QaXhlbHMgPD0gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgY29tcHV0ZUxhYmVsQmFuZDogaW1hZ2VIZWlnaHRJblBpeGVscyBtdXN0IGJlIGEgcG9zaXRpdmUgbnVtYmVyLCBnb3QgJHtTdHJpbmcoaW1hZ2VIZWlnaHRJblBpeGVscyl9LmApO1xuICB9XG5cbiAgY29uc3QgZm9udFNpemVJblBpeGVscyA9IE1hdGgubWF4KE1JTklNVU1fRk9OVF9TSVpFX0lOX1BJWEVMUywgTWF0aC5yb3VuZChpbWFnZVdpZHRoSW5QaXhlbHMgKiBGT05UX1NJWkVfUkFUSU8pKTtcbiAgY29uc3QgY2FwdGlvbkhlaWdodEluUGl4ZWxzID0gTWF0aC5yb3VuZChmb250U2l6ZUluUGl4ZWxzICogQkFORF9IRUlHSFRfUkFUSU8pO1xuICBjb25zdCBmbG9vcmVkSGVpZ2h0SW5QaXhlbHMgPSBNYXRoLm1heChjYXB0aW9uSGVpZ2h0SW5QaXhlbHMsIE1hdGgucm91bmQoaW1hZ2VIZWlnaHRJblBpeGVscyAqIE1JTklNVU1fSEVJR0hUX1JBVElPKSk7XG4gIGNvbnN0IGhlaWdodEluUGl4ZWxzID0gTWF0aC5taW4oaW1hZ2VIZWlnaHRJblBpeGVscywgZmxvb3JlZEhlaWdodEluUGl4ZWxzKTtcbiAgY29uc3Qgc2lkZU1hcmdpbkluUGl4ZWxzID0gTWF0aC5yb3VuZChpbWFnZVdpZHRoSW5QaXhlbHMgKiBTSURFX01BUkdJTl9SQVRJTyk7XG5cbiAgcmV0dXJuIHtcbiAgICBjYXB0aW9uUm9vbUluUGl4ZWxzOiBpbWFnZVdpZHRoSW5QaXhlbHMgLSAoc2lkZU1hcmdpbkluUGl4ZWxzICogQ0VOVEVSX0RJVklTT1IpLFxuICAgIGZvbnRTaXplSW5QaXhlbHMsXG4gICAgaGVpZ2h0SW5QaXhlbHMsXG4gICAgdG9wSW5QaXhlbHM6IGltYWdlSGVpZ2h0SW5QaXhlbHMgLSBoZWlnaHRJblBpeGVsc1xuICB9O1xufVxuXG4vKipcbiAqIEVzY2FwZXMgdGV4dCBmb3IgaW5jbHVzaW9uIGluIFNWRyBjaGFyYWN0ZXIgZGF0YS5cbiAqXG4gKiBBIGNhcHRpb24gaXMgYXV0aG9yZWQgcGVyIHNjcmVlbnNob3QgYW5kIGNhbiBsZWdpdGltYXRlbHkgY29udGFpbiBgJmAgb3IgdGhlXG4gKiBhbmdsZSBicmFja2V0cyBPYnNpZGlhbiB1c2VzIGluIGxpbmsgc3ludGF4OyB1bmVzY2FwZWQsIHRob3NlIG1ha2UgdGhlIFNWR1xuICogaW1wb3NzaWJsZSB0byBwYXJzZSBhbmQgYHNoYXJwYCBmYWlscyBvbiBhIGNhcHRpb24gcmF0aGVyIHRoYW4gb24gYW4gaW1hZ2UuXG4gKlxuICogQHBhcmFtIHRleHQgLSBUaGUgcmF3IGNhcHRpb24uXG4gKiBAcmV0dXJucyBUaGUgY2FwdGlvbiwgc2FmZSB0byBlbWJlZCBpbiBTVkcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlc2NhcGVTdmdUZXh0KHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiB0ZXh0XG4gICAgLnJlcGxhY2VBbGwoJyYnLCAnJmFtcDsnKVxuICAgIC5yZXBsYWNlQWxsKCc8JywgJyZsdDsnKVxuICAgIC5yZXBsYWNlQWxsKCc+JywgJyZndDsnKVxuICAgIC5yZXBsYWNlQWxsKCdcIicsICcmcXVvdDsnKVxuICAgIC5yZXBsYWNlQWxsKCdcXCcnLCAnJmFwb3M7Jyk7XG59XG5cbi8qKlxuICogRHJhd3MgYSBjYXB0aW9uIGJhbmQgYWNyb3NzIHRoZSBib3R0b20gb2YgYSBzY3JlZW5zaG90LlxuICpcbiAqIFRoZSBpbWFnZSBrZWVwcyBpdHMgZGltZW5zaW9ucyBleGFjdGx5OiB0aGUgYmFuZCBpcyBjb21wb3NpdGVkIE9WRVIgdGhlXG4gKiBmcmFtZSwgbmV2ZXIgYXBwZW5kZWQgdG8gaXQsIGJlY2F1c2UgdGhlIHN0b3JlIGV4cGVjdHMgYSBzcGVjaWZpYyBzaXplLlxuICpcbiAqIEBwYXJhbSBieXRlcyAtIFRoZSBjYXB0dXJlZCBQTkcuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBjYXB0aW9uLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byB0aGUgbGFiZWxlZCBQTkcsIHRoZSBzYW1lIHNpemUgYXMgdGhlIGlucHV0LlxuICogQHRocm93cyBFcnJvciBpZiBgc2hhcnBgIGlzIG5vdCBpbnN0YWxsZWQsIHRoZSBpbWFnZSBkaW1lbnNpb25zIGNhbm5vdCBiZSByZWFkLCBvciB0aGUgY2FwdGlvbiBpcyB0b28gd2lkZSBmb3IgdGhlIGZyYW1lLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbGFiZWxTY3JlZW5zaG90KGJ5dGVzOiBVaW50OEFycmF5LCBvcHRpb25zOiBMYWJlbFNjcmVlbnNob3RPcHRpb25zKTogUHJvbWlzZTxVaW50OEFycmF5PiB7XG4gIGNvbnN0IHNoYXJwID0gYXdhaXQgaW1wb3J0U2hhcnAoJ2xhYmVsU2NyZWVuc2hvdCcpO1xuICBjb25zdCBtZXRhZGF0YSA9IGF3YWl0IHNoYXJwKGJ5dGVzKS5tZXRhZGF0YSgpO1xuICBjb25zdCBpbWFnZVdpZHRoSW5QaXhlbHMgPSBtZXRhZGF0YS53aWR0aDtcbiAgY29uc3QgaW1hZ2VIZWlnaHRJblBpeGVscyA9IG1ldGFkYXRhLmhlaWdodDtcblxuICAvKiB2OCBpZ25vcmUgbmV4dCAzIC0tIERlZmVuc2l2ZTogYHNoYXJwYCByZWplY3RzIGEgbm9uLWltYWdlIGJlZm9yZSBpdCBjYW4gcmVwb3J0IG1ldGFkYXRhIHdpdGhvdXQgZGltZW5zaW9ucywgc28gdGhpcyBicmFuY2ggaXMgdW5yZWFjaGFibGUgZnJvbSBhIHRlc3QuICovXG4gIGlmIChpbWFnZVdpZHRoSW5QaXhlbHMgPT09IHVuZGVmaW5lZCB8fCBpbWFnZUhlaWdodEluUGl4ZWxzID09PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2xhYmVsU2NyZWVuc2hvdDogY291bGQgbm90IHJlYWQgdGhlIHNvdXJjZSBpbWFnZSBkaW1lbnNpb25zLicpO1xuICB9XG5cbiAgY29uc3QgZ2VvbWV0cnkgPSBjb21wdXRlTGFiZWxCYW5kKHsgaW1hZ2VIZWlnaHRJblBpeGVscywgaW1hZ2VXaWR0aEluUGl4ZWxzIH0pO1xuICBjb25zdCB0ZXh0V2lkdGhJblBpeGVscyA9IGF3YWl0IG1lYXN1cmVDYXB0aW9uV2lkdGgob3B0aW9ucy50ZXh0LCBnZW9tZXRyeS5mb250U2l6ZUluUGl4ZWxzKTtcblxuICBpZiAodGV4dFdpZHRoSW5QaXhlbHMgPiBnZW9tZXRyeS5jYXB0aW9uUm9vbUluUGl4ZWxzKSB7XG4gICAgY29uc3Qgb3ZlcmZsb3dJblBpeGVscyA9IHRleHRXaWR0aEluUGl4ZWxzIC0gZ2VvbWV0cnkuY2FwdGlvblJvb21JblBpeGVscztcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgbGFiZWxTY3JlZW5zaG90OiB0aGUgY2FwdGlvbiBpcyAke1N0cmluZyhvdmVyZmxvd0luUGl4ZWxzKX1weCB0b28gd2lkZSBmb3IgdGhlIGZyYW1lLiBgXG4gICAgICAgICsgYEl0IHJlbmRlcnMgJHtTdHJpbmcodGV4dFdpZHRoSW5QaXhlbHMpfXB4IGF0IGZvbnQtc2l6ZSAke1N0cmluZyhnZW9tZXRyeS5mb250U2l6ZUluUGl4ZWxzKX0sIGFuZCBhIGBcbiAgICAgICAgKyBgJHtTdHJpbmcoaW1hZ2VXaWR0aEluUGl4ZWxzKX1weCBmcmFtZSBoYXMgcm9vbSBmb3IgJHtTdHJpbmcoZ2VvbWV0cnkuY2FwdGlvblJvb21JblBpeGVscyl9cHguIGBcbiAgICAgICAgKyAnU2hvcnRlbiBpdDogYSBjYXB0aW9uIHRoYXQgZG9lcyBub3QgZml0IGlzIGNsaXBwZWQgYXQgQk9USCBlbmRzLCB3aXRoIG5vIGVsbGlwc2lzIHRvIHNob3cgaXQgaGFwcGVuZWQuICdcbiAgICAgICAgKyBgQ2FwdGlvbjogJHtKU09OLnN0cmluZ2lmeShvcHRpb25zLnRleHQpfWBcbiAgICApO1xuICB9XG5cbiAgY29uc3Qgc3ZnID0gYnVpbGRMYWJlbFN2ZyhvcHRpb25zLnRleHQsIGdlb21ldHJ5LCBpbWFnZVdpZHRoSW5QaXhlbHMpO1xuICBjb25zdCBsYXllcjogU2hhcnBDb21wb3NpdGVMYXllciA9IHtcbiAgICBpbnB1dDogQnVmZmVyLmZyb20oc3ZnKSxcbiAgICBsZWZ0OiAwLFxuICAgIHRvcDogZ2VvbWV0cnkudG9wSW5QaXhlbHNcbiAgfTtcblxuICBjb25zdCBsYWJlbGVkID0gYXdhaXQgc2hhcnAoYnl0ZXMpXG4gICAgLmNvbXBvc2l0ZShbbGF5ZXJdKVxuICAgIC5wbmcoKVxuICAgIC50b0J1ZmZlcigpO1xuXG4gIHJldHVybiBuZXcgVWludDhBcnJheShsYWJlbGVkKTtcbn1cblxuLyoqXG4gKiBNZWFzdXJlcyBhIGNhcHRpb24gYWdhaW5zdCB0aGUgZnJhbWUgaXQgaXMgZGVzdGluZWQgZm9yLCB3aXRob3V0IGRyYXdpbmdcbiAqIGFueXRoaW5nLlxuICpcbiAqIFRoaXMgaXMgd2hhdCB7QGxpbmsgbGFiZWxTY3JlZW5zaG90fSByZWplY3RzIGFuIG92ZXJsb25nIGNhcHRpb24gd2l0aCwgZXhwb3NlZFxuICogc28gYSBjYXB0aW9uIGNhbiBiZSBjaG9zZW4gd2l0aCB0aGUgbnVtYmVyIGluIGhhbmQgaW5zdGVhZCBvZiBieSBjYXB0dXJpbmcgYVxuICogZnJhbWUgYW5kIGxvb2tpbmcgYXQgaXQuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBjYXB0aW9uIGFuZCB0aGUgZGltZW5zaW9ucyBvZiB0aGUgaW1hZ2UgaXQgaXMgZm9yLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byB0aGUgbWVhc3VyZW1lbnQuXG4gKiBAdGhyb3dzIEVycm9yIGlmIGBzaGFycGAgaXMgbm90IGluc3RhbGxlZCwgb3IgZWl0aGVyIGRpbWVuc2lvbiBpcyBub3QgYSBwb3NpdGl2ZSBudW1iZXIuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBtZWFzdXJlTGFiZWxDYXB0aW9uKHBhcmFtczogTWVhc3VyZUxhYmVsQ2FwdGlvblBhcmFtcyk6IFByb21pc2U8TGFiZWxDYXB0aW9uTWVhc3VyZW1lbnQ+IHtcbiAgY29uc3QgeyBpbWFnZUhlaWdodEluUGl4ZWxzLCBpbWFnZVdpZHRoSW5QaXhlbHMsIHRleHQgfSA9IHBhcmFtcztcbiAgY29uc3QgZ2VvbWV0cnkgPSBjb21wdXRlTGFiZWxCYW5kKHsgaW1hZ2VIZWlnaHRJblBpeGVscywgaW1hZ2VXaWR0aEluUGl4ZWxzIH0pO1xuICBjb25zdCB0ZXh0V2lkdGhJblBpeGVscyA9IGF3YWl0IG1lYXN1cmVDYXB0aW9uV2lkdGgodGV4dCwgZ2VvbWV0cnkuZm9udFNpemVJblBpeGVscyk7XG5cbiAgcmV0dXJuIHtcbiAgICBjYXB0aW9uUm9vbUluUGl4ZWxzOiBnZW9tZXRyeS5jYXB0aW9uUm9vbUluUGl4ZWxzLFxuICAgIGRvZXNGaXQ6IHRleHRXaWR0aEluUGl4ZWxzIDw9IGdlb21ldHJ5LmNhcHRpb25Sb29tSW5QaXhlbHMsXG4gICAgdGV4dFdpZHRoSW5QaXhlbHNcbiAgfTtcbn1cblxuLyoqXG4gKiBCdWlsZHMgdGhlIGNhcHRpb24ncyBTVkcgYDx0ZXh0PmAgZWxlbWVudC5cbiAqXG4gKiBCb3RoIHRoZSBiYW5kIGFuZCB0aGUgbWVhc3VyZW1lbnQgY2FudmFzIGdvIHRocm91Z2ggaGVyZSwgc28gdGhlIHRoaW5nIHRoYXRcbiAqIGlzIG1lYXN1cmVkIGlzIGRyYXduIHdpdGggdGhlIHNhbWUgZmFjZSwgd2VpZ2h0IGFuZCBzaXplIGFzIHRoZSB0aGluZyB0aGF0XG4gKiBzaGlwcy4gVHdvIGhhbmQtd3JpdHRlbiBjb3BpZXMgd291bGQgYmUgZnJlZSB0byBkcmlmdCwgYW5kIGEgbWVhc3VyZW1lbnQgdGhhdFxuICogaGFzIGRyaWZ0ZWQgZnJvbSB0aGUgZHJhd2luZyBpcyB3b3JzZSB0aGFuIG5vIG1lYXN1cmVtZW50IGF0IGFsbC5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIGNhcHRpb24sIGl0cyBzaXplLCBhbmQgd2hlcmUgdG8gYW5jaG9yIGl0LlxuICogQHJldHVybnMgVGhlIGA8dGV4dD5gIG1hcmt1cC5cbiAqL1xuZnVuY3Rpb24gYnVpbGRDYXB0aW9uVGV4dEVsZW1lbnQocGFyYW1zOiBDYXB0aW9uVGV4dEVsZW1lbnRQYXJhbXMpOiBzdHJpbmcge1xuICBjb25zdCB7IGZvbnRTaXplSW5QaXhlbHMsIHRleHQsIHRleHRBbmNob3IsIHhJblBpeGVscywgeUluUGl4ZWxzIH0gPSBwYXJhbXM7XG5cbiAgcmV0dXJuIGA8dGV4dCB4PVwiJHtTdHJpbmcoeEluUGl4ZWxzKX1cIiB5PVwiJHtTdHJpbmcoeUluUGl4ZWxzKX1cIiBgXG4gICAgKyBgZm9udC1mYW1pbHk9XCIke0ZPTlRfRkFNSUxZfVwiIGZvbnQtc2l6ZT1cIiR7U3RyaW5nKGZvbnRTaXplSW5QaXhlbHMpfVwiIGBcbiAgICArIGBmb250LXdlaWdodD1cIiR7Rk9OVF9XRUlHSFR9XCIgZmlsbD1cIiR7Q0FQVElPTl9GSUxMfVwiIHRleHQtYW5jaG9yPVwiJHt0ZXh0QW5jaG9yfVwiIGRvbWluYW50LWJhc2VsaW5lPVwiY2VudHJhbFwiPmBcbiAgICArIGAke2VzY2FwZVN2Z1RleHQodGV4dCl9PC90ZXh0PmA7XG59XG5cbi8qKlxuICogTWVhc3VyZXMgaG93IHdpZGUgYSBjYXB0aW9uIHJlbmRlcnMgYXQgYSBnaXZlbiBzaXplLlxuICpcbiAqIFRoZSB0ZXh0IGlzIGRyYXduIGFsb25lIG9uIGEgdHJhbnNwYXJlbnQgY2FudmFzIGRlbGliZXJhdGVseSB3aWRlciB0aGFuIGl0IGNhblxuICogcG9zc2libHkgbmVlZCwgdGhlbiBgdHJpbWBtZWQgYmFjayB0byBpdHMgb3duIGluayBcdTIwMTQgdGhlIHNhbWUgbWVhc3VyZW1lbnQgdGhhdFxuICogd2FzIHByZXZpb3VzbHkgZG9uZSBieSBoYW5kLCBvbmNlLCBwZXIgY2FwdGlvbiwgYnkgd2hvZXZlciB0aG91Z2h0IHRvIGRvdWJ0XG4gKiBvbmUuIFRoZSByZW5kZXJlciBkb2luZyB0aGUgbWVhc3VyaW5nIGlzIHRoZSByZW5kZXJlciB0aGF0IGRyYXdzIHRoZSBiYW5kLCBzb1xuICogdGhlIHR3byBjYW5ub3QgZGlzYWdyZWUgYWJvdXQgYSBmb250IHRoZSBob3N0IGRvZXMgb3IgZG9lcyBub3QgaGF2ZS5cbiAqXG4gKiBAcGFyYW0gdGV4dCAtIFRoZSBjYXB0aW9uLlxuICogQHBhcmFtIGZvbnRTaXplSW5QaXhlbHMgLSBUaGUgc2l6ZSB0aGUgYmFuZCB3b3VsZCBkcmF3IGl0IGF0LlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byB0aGUgcmVuZGVyZWQgd2lkdGggaW4gcGl4ZWxzLlxuICovXG5hc3luYyBmdW5jdGlvbiBtZWFzdXJlQ2FwdGlvbldpZHRoKHRleHQ6IHN0cmluZywgZm9udFNpemVJblBpeGVsczogbnVtYmVyKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgLy8gQSBjYXB0aW9uIHdpdGggbm8gaW5rIGxlYXZlcyB0aGUgY2FudmFzIHVuaWZvcm1seSB0cmFuc3BhcmVudCwgYW5kIGB0cmltYFxuICAvLyByZXR1cm5zIHN1Y2ggYW4gaW1hZ2UgdW50b3VjaGVkIFx1MjAxNCBpLmUuIHJlcG9ydHMgdGhlIHdob2xlIGNhbnZhcyBhcyB0ZXh0LlxuICBpZiAodGV4dC50cmltKCkgPT09ICcnKSB7XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICBjb25zdCBzaGFycCA9IGF3YWl0IGltcG9ydFNoYXJwKCdtZWFzdXJlTGFiZWxDYXB0aW9uJyk7XG4gIGNvbnN0IHBhZGRpbmdJblBpeGVscyA9IGZvbnRTaXplSW5QaXhlbHMgKiBDRU5URVJfRElWSVNPUjtcbiAgY29uc3QgY2FudmFzV2lkdGhJblBpeGVscyA9IE1hdGguY2VpbChmb250U2l6ZUluUGl4ZWxzICogTUFYSU1VTV9HTFlQSF9BRFZBTkNFX1JBVElPICogdGV4dC5sZW5ndGgpICsgcGFkZGluZ0luUGl4ZWxzO1xuICBjb25zdCBjYW52YXNIZWlnaHRJblBpeGVscyA9IE1hdGguY2VpbChmb250U2l6ZUluUGl4ZWxzICogTUVBU1VSRU1FTlRfQ0FOVkFTX0hFSUdIVF9SQVRJTyk7XG4gIGNvbnN0IGNhcHRpb25FbGVtZW50ID0gYnVpbGRDYXB0aW9uVGV4dEVsZW1lbnQoe1xuICAgIGZvbnRTaXplSW5QaXhlbHMsXG4gICAgdGV4dCxcbiAgICB0ZXh0QW5jaG9yOiAnc3RhcnQnLFxuICAgIHhJblBpeGVsczogZm9udFNpemVJblBpeGVscyxcbiAgICB5SW5QaXhlbHM6IGNhbnZhc0hlaWdodEluUGl4ZWxzIC8gQ0VOVEVSX0RJVklTT1JcbiAgfSk7XG4gIGNvbnN0IHN2ZyA9IGA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIiR7U3RyaW5nKGNhbnZhc1dpZHRoSW5QaXhlbHMpfVwiIGhlaWdodD1cIiR7U3RyaW5nKGNhbnZhc0hlaWdodEluUGl4ZWxzKX1cIj5gXG4gICAgKyBgJHtjYXB0aW9uRWxlbWVudH08L3N2Zz5gO1xuXG4gIGNvbnN0IHRyaW1tZWQgPSBhd2FpdCBzaGFycChuZXcgVWludDhBcnJheShCdWZmZXIuZnJvbShzdmcpKSlcbiAgICAudHJpbSh7IHRocmVzaG9sZDogVFJJTV9USFJFU0hPTEQgfSlcbiAgICAucG5nKClcbiAgICAudG9CdWZmZXIoKTtcblxuICByZXR1cm4gcmVhZFBuZ0RpbWVuc2lvbnMobmV3IFVpbnQ4QXJyYXkodHJpbW1lZCkpLndpZHRoSW5QaXhlbHM7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtB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
|
|
@@ -15,6 +15,14 @@
|
|
|
15
15
|
*
|
|
16
16
|
* This is post-processing, deliberately. The capture stays an untouched device
|
|
17
17
|
* frame, and rewording a label needs no re-shoot.
|
|
18
|
+
*
|
|
19
|
+
* A caption that is too long for its frame is MEASURED and rejected rather than
|
|
20
|
+
* drawn. An SVG `<text>` is clipped by its viewport at both ends with no
|
|
21
|
+
* ellipsis and no error, so an overlong caption ships as a sentence fragment
|
|
22
|
+
* that looks deliberate — `nabled in Settings - a listening plugin is told` —
|
|
23
|
+
* and the frame is still exactly the size it should be, so every dimension
|
|
24
|
+
* assertion downstream still passes. The only feedback anyone ever got was
|
|
25
|
+
* looking at the PNG. See {@link measureLabelCaption}.
|
|
18
26
|
*/
|
|
19
27
|
/**
|
|
20
28
|
* Parameters for {@link computeLabelBand}.
|
|
@@ -33,6 +41,12 @@ export interface ComputeLabelBandParams {
|
|
|
33
41
|
* The geometry of the caption band.
|
|
34
42
|
*/
|
|
35
43
|
export interface LabelBandGeometry {
|
|
44
|
+
/**
|
|
45
|
+
* How much horizontal room the caption has, in pixels: the image width less
|
|
46
|
+
* the margin held clear at each end, so a caption that fits does not read as
|
|
47
|
+
* though it were about to touch the edge of the frame.
|
|
48
|
+
*/
|
|
49
|
+
readonly captionRoomInPixels: number;
|
|
36
50
|
/**
|
|
37
51
|
* Font size for the caption, in pixels.
|
|
38
52
|
*/
|
|
@@ -46,13 +60,50 @@ export interface LabelBandGeometry {
|
|
|
46
60
|
*/
|
|
47
61
|
readonly topInPixels: number;
|
|
48
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* What a caption measures against the frame it is destined for.
|
|
65
|
+
*/
|
|
66
|
+
export interface LabelCaptionMeasurement {
|
|
67
|
+
/**
|
|
68
|
+
* The room available, in pixels — {@link LabelBandGeometry.captionRoomInPixels}.
|
|
69
|
+
*/
|
|
70
|
+
readonly captionRoomInPixels: number;
|
|
71
|
+
/**
|
|
72
|
+
* Whether the caption fits that room.
|
|
73
|
+
*/
|
|
74
|
+
readonly doesFit: boolean;
|
|
75
|
+
/**
|
|
76
|
+
* How wide the caption actually renders, in pixels, at the size the band
|
|
77
|
+
* would draw it.
|
|
78
|
+
*/
|
|
79
|
+
readonly textWidthInPixels: number;
|
|
80
|
+
}
|
|
49
81
|
/**
|
|
50
82
|
* Options for {@link labelScreenshot}.
|
|
51
83
|
*/
|
|
52
84
|
export interface LabelScreenshotOptions {
|
|
53
85
|
/**
|
|
54
86
|
* The caption. Keep it to a handful of words: it is read at listing-thumbnail
|
|
55
|
-
* size, and it is
|
|
87
|
+
* size, and it is neither wrapped nor shrunk to fit — one that does not fit
|
|
88
|
+
* is REJECTED, with the measured width and the room available. Check a
|
|
89
|
+
* candidate with {@link measureLabelCaption} before committing to it.
|
|
90
|
+
*/
|
|
91
|
+
readonly text: string;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Parameters for {@link measureLabelCaption}.
|
|
95
|
+
*/
|
|
96
|
+
export interface MeasureLabelCaptionParams {
|
|
97
|
+
/**
|
|
98
|
+
* Height of the image the caption is destined for, in pixels.
|
|
99
|
+
*/
|
|
100
|
+
readonly imageHeightInPixels: number;
|
|
101
|
+
/**
|
|
102
|
+
* Width of the image the caption is destined for, in pixels.
|
|
103
|
+
*/
|
|
104
|
+
readonly imageWidthInPixels: number;
|
|
105
|
+
/**
|
|
106
|
+
* The caption to measure.
|
|
56
107
|
*/
|
|
57
108
|
readonly text: string;
|
|
58
109
|
}
|
|
@@ -93,6 +144,19 @@ export declare function escapeSvgText(text: string): string;
|
|
|
93
144
|
* @param bytes - The captured PNG.
|
|
94
145
|
* @param options - The caption.
|
|
95
146
|
* @returns A {@link Promise} that resolves to the labeled PNG, the same size as the input.
|
|
96
|
-
* @throws Error if `sharp` is not installed,
|
|
147
|
+
* @throws Error if `sharp` is not installed, the image dimensions cannot be read, or the caption is too wide for the frame.
|
|
97
148
|
*/
|
|
98
149
|
export declare function labelScreenshot(bytes: Uint8Array, options: LabelScreenshotOptions): Promise<Uint8Array>;
|
|
150
|
+
/**
|
|
151
|
+
* Measures a caption against the frame it is destined for, without drawing
|
|
152
|
+
* anything.
|
|
153
|
+
*
|
|
154
|
+
* This is what {@link labelScreenshot} rejects an overlong caption with, exposed
|
|
155
|
+
* so a caption can be chosen with the number in hand instead of by capturing a
|
|
156
|
+
* frame and looking at it.
|
|
157
|
+
*
|
|
158
|
+
* @param params - The caption and the dimensions of the image it is for.
|
|
159
|
+
* @returns A {@link Promise} that resolves to the measurement.
|
|
160
|
+
* @throws Error if `sharp` is not installed, or either dimension is not a positive number.
|
|
161
|
+
*/
|
|
162
|
+
export declare function measureLabelCaption(params: MeasureLabelCaptionParams): Promise<LabelCaptionMeasurement>;
|