diff --git a/.eslintignore b/.eslintignore
index 136ecb0..cbe6908 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -8,3 +8,5 @@ node_modules/
package-lock.json
!.*.json
!.*.jsonc
+/docs/
+**/*.d.ts
diff --git a/.eslintrc.json b/.eslintrc.json
index a7bd735..e745b96 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -6,9 +6,8 @@
"prettier",
"plugin:yml/standard",
"plugin:yml/prettier",
- "plugin:markdown/recommended-legacy",
- "plugin:jsonc/recommended-with-jsonc",
- "plugin:jsonc/prettier"
+ "plugin:mdx/recommended",
+ "plugin:jsonc/recommended-with-jsonc"
],
"plugins": ["html"],
"reportUnusedDisableDirectives": true,
@@ -29,7 +28,8 @@
},
"settings": {
"html/indent": "+2",
- "html/report-bad-indent": "error"
+ "html/report-bad-indent": "error",
+ "mdx/code-blocks": true
},
"overrides": [
{
diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
index af02f3e..a4047a5 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.yml
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -9,9 +9,9 @@ body:
## Before Submitting an Issue
1. Have you read ImageMapster's [Code of Conduct](https://github.com/jamietre/ImageMapster/blob/main/CODE_OF_CONDUCT.md)? By filing an Issue, you are expected to comply with it, including treating everyone with respect.
- 1. Have you read ImageMapster's [Contributing Guidelines](https://github.com/jamietre/ImageMapster/blob/main/CONTRIBUTING.md)? If not, please review them before filing an issue.
- 1. Have you searched [existing issues](https://github.com/jamietre/ImageMapster/issues?q=is%3Aissue+) to see if your issue has already been reported?
- 1. Do you want to ask a question? Are you looking for support? **Please do not use the issue tracker for personal support requests.** For questions, how to's, etc, please see the [Support Page](https://github.com/jamietre/ImageMapster/blob/main/SUPPORT.md) for options.
+ 2. Have you read ImageMapster's [Contributing Guidelines](https://github.com/jamietre/ImageMapster/blob/main/CONTRIBUTING.md)? If not, please review them before filing an issue.
+ 3. Have you searched [existing issues](https://github.com/jamietre/ImageMapster/issues?q=is%3Aissue+) to see if your issue has already been reported?
+ 4. Do you want to ask a question? Are you looking for support? **Please do not use the issue tracker for personal support requests.** For questions, how to's, etc, please see the [Support Page](https://github.com/jamietre/ImageMapster/blob/main/SUPPORT.md) for options.
- type: textarea
id: description
@@ -26,7 +26,7 @@ body:
id: reproduction
attributes:
label: Reproduction
- description: Please provide a link to a location (e.g., repo, [jsFiddle](https://www.jsfiddle.net), etc.) that reproduces the problem you ran into using the latest version of ImageMapster. Please see the [contributing docs](https://github.com/jamietre/ImageMapster/blob/main/CONTRIBUTING.md) for suggestions on creating a reproduction. A [minimal reproduction](https://stackoverflow.com/help/minimal-reproducible-example) **is required** ([Why?](https://antfu.me/posts/why-reproductions-are-required)). If a report is vague (e.g., just a generic error message) and has no reproduction, it will receive a "needs author feedback" label and the issue closed until there is enough information provided.
+ description: Please provide a link to a location (e.g., repo, [JSFiddle](https://www.jsfiddle.net), etc.) that reproduces the problem you ran into using the latest version of ImageMapster. Please see the [contributing docs](https://github.com/jamietre/ImageMapster/blob/main/CONTRIBUTING.md) for suggestions on creating a reproduction. A [minimal reproduction](https://stackoverflow.com/help/minimal-reproducible-example) **is required** ([Why?](https://antfu.me/posts/why-reproductions-are-required)). If a report is vague (e.g., just a generic error message) and has no reproduction, it will receive a "needs author feedback" label and the issue closed until there is enough information provided.
placeholder: Reproduction URL
validations:
required: true
diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml
index 3ac8dc9..100eef9 100644
--- a/.github/ISSUE_TEMPLATE/feature_request.yml
+++ b/.github/ISSUE_TEMPLATE/feature_request.yml
@@ -9,9 +9,9 @@ body:
## Before Submitting an Issue
1. Have you read ImageMapster's [Code of Conduct](https://github.com/jamietre/ImageMapster/blob/main/CODE_OF_CONDUCT.md)? By filing an Issue, you are expected to comply with it, including treating everyone with respect.
- 1. Have you read ImageMapster's [Contributing Guidelines](https://github.com/jamietre/ImageMapster/blob/main/CONTRIBUTING.md)? If not, please review them before filing an issue.
- 1. Have you searched [existing issues](https://github.com/jamietre/ImageMapster/issues?q=is%3Aissue+) to see if your issue has already been reported?
- 1. Do you want to ask a question? Are you looking for support? **Please do not use the issue tracker for personal support requests.** For questions, how to's, etc, please see the [Support Page](https://github.com/jamietre/ImageMapster/blob/main/SUPPORT.md) for options.
+ 2. Have you read ImageMapster's [Contributing Guidelines](https://github.com/jamietre/ImageMapster/blob/main/CONTRIBUTING.md)? If not, please review them before filing an issue.
+ 3. Have you searched [existing issues](https://github.com/jamietre/ImageMapster/issues?q=is%3Aissue+) to see if your issue has already been reported?
+ 4. Do you want to ask a question? Are you looking for support? **Please do not use the issue tracker for personal support requests.** For questions, how to's, etc, please see the [Support Page](https://github.com/jamietre/ImageMapster/blob/main/SUPPORT.md) for options.
- type: textarea
id: description
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index 08ef470..87682ad 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -1,4 +1,6 @@
-# IMPORTANT: Please do not create a Pull Request without creating an issue first
+# IMPORTANT
+
+Please do not create a Pull Request without creating an issue first.
## Before Submitting a Pull Request
@@ -18,7 +20,7 @@
## Description (required)
-**_Please provide enough information so that others can review your pull request._**
+_**Please provide enough information so that others can review your pull request.**_
Explain the **details** for making this change. What existing problem does the pull request solve and/or what capability does it add?
Example: When "Adding a function to do X", explain why it is necessary to have a way to do X.
diff --git a/.github/workflows/gh-pages-deploy.yml b/.github/workflows/gh-pages-deploy.yml
new file mode 100644
index 0000000..cf13d62
--- /dev/null
+++ b/.github/workflows/gh-pages-deploy.yml
@@ -0,0 +1,49 @@
+name: Deploy to GitHub Pages
+
+on:
+ # Trigger the workflow every time you push to the `main` branch
+ # Using a different branch name? Replace `main` with your branch’s name
+ push:
+ branches: [main, add-im-website]
+ # Allows you to run this workflow manually from the Actions tab on GitHub.
+ workflow_dispatch:
+
+# Allow this job to clone the repo and create a page deployment
+permissions:
+ contents: read
+ pages: write
+ id-token: write
+
+# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
+# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
+concurrency:
+ group: pages
+ cancel-in-progress: false
+
+env:
+ SITE_URL: https://${{ github.repository_owner }}.github.io
+ BASE_PATH: ${{ github.event.repository.name }}
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout your repository using git
+ uses: actions/checkout@v4
+ - name: Install, build, and upload your site output
+ uses: withastro/action@v2
+ with:
+ path: site
+ # node-version: 20 # The specific version of Node that should be used to build your site. Defaults to 18. (optional)
+ # package-manager: pnpm@latest # The Node package manager that should be used to install dependencies and build your site. Automatically detected based on your lockfile. (optional)
+
+ deploy:
+ needs: build
+ runs-on: ubuntu-latest
+ environment:
+ name: github-pages
+ url: ${{ steps.deployment.outputs.page_url }}
+ steps:
+ - name: Deploy to GitHub Pages
+ id: deployment
+ uses: actions/deploy-pages@v4
diff --git a/.gitignore b/.gitignore
index 2fdf308..6204eba 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,4 +17,5 @@ build/
.vscode/*
!.vscode/extensions.json
!.vscode/settings.json
-docs/
+/docs/
+
diff --git a/.markdownlint-cli2.jsonc b/.markdownlint-cli2.jsonc
deleted file mode 100644
index 1f08b33..0000000
--- a/.markdownlint-cli2.jsonc
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "config": {
- "default": true,
- "line-length": false
- },
- "ignores": [
- "tests/redist/**",
- "examples/redist/**",
- "build/**",
- "dist/**",
- "node_modules/**",
- ".git/**"
- ]
-}
diff --git a/.prettierignore b/.prettierignore
index affc365..3fd4917 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -9,3 +9,4 @@ package-lock.json
!.*.json
!.*.jsonc
*.hbs
+/docs/
diff --git a/.prettierrc.json b/.prettierrc.json
index 32ebab4..323a3f9 100644
--- a/.prettierrc.json
+++ b/.prettierrc.json
@@ -1,4 +1,5 @@
{
"singleQuote": true,
- "trailingComma": "none"
+ "trailingComma": "none",
+ "plugins": ["prettier-plugin-astro"]
}
diff --git a/.remarkignore b/.remarkignore
new file mode 100644
index 0000000..c879755
--- /dev/null
+++ b/.remarkignore
@@ -0,0 +1,7 @@
+# NOTE - This file is only used when running remark-cli, it is not used by eslint.
+tests/redist/
+examples/redist/
+build/
+dist/
+node_modules/
+/docs/
diff --git a/.remarkrc.js b/.remarkrc.js
new file mode 100644
index 0000000..3410a69
--- /dev/null
+++ b/.remarkrc.js
@@ -0,0 +1,29 @@
+module.exports = {
+ settings: {
+ bullet: '-',
+ emphasis: '_',
+ listItemIndent: 'one',
+ quote: "'",
+ rule: '-',
+ strong: '*',
+ tightDefinitions: true
+ },
+ plugins: [
+ 'remark-preset-lint-consistent',
+ 'remark-preset-lint-markdown-style-guide',
+ 'remark-preset-lint-recommended',
+ 'remark-preset-prettier',
+ ['remark-lint-list-item-indent', 'space'],
+ ['remark-lint-maximum-line-length', false],
+ ['remark-lint-list-item-spacing', { checkBlanks: true }],
+ ['remark-lint-no-file-name-irregular-characters', false],
+ ['remark-lint-ordered-list-marker-value', 'ordered'],
+ ['remark-lint-emphasis-marker', '_'],
+ ['remark-lint-unordered-list-marker-style', '-'],
+ ['remark-lint-link-title-style', "'"],
+ ['remark-lint-rule-style', '---'],
+ ['remark-lint-strong-marker', '*'],
+ 'remark-frontmatter',
+ 'remark-gfm'
+ ]
+};
diff --git a/.vscode/extensions.json b/.vscode/extensions.json
index 741e17d..a862cc7 100644
--- a/.vscode/extensions.json
+++ b/.vscode/extensions.json
@@ -1,7 +1,7 @@
{
"recommendations": [
"dbaeumer.vscode-eslint",
- "DavidAnson.vscode-markdownlint",
+ "unifiedjs.vscode-mdx",
"esbenp.prettier-vscode"
]
}
diff --git a/.vscode/settings.json b/.vscode/settings.json
index ecdccfb..901c353 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -2,8 +2,18 @@
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
- "source.fixAll.eslint": "explicit",
- "source.fixAll.markdownlint": "explicit"
+ "source.fixAll.eslint": "explicit"
},
- "eslint.validate": ["javascript", "html", "markdown", "yaml", "json", "jsonc"]
+ "eslint.validate": [
+ "javascript",
+ "html",
+ "markdown",
+ "mdx",
+ "yaml",
+ "json",
+ "jsonc",
+ "typescript",
+ "astro"
+ ],
+ "prettier.documentSelectors": ["**/*.astro"]
}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index c486175..e8c65ee 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -16,7 +16,7 @@
## Version 1.6.0 - 2024.03.12
-- [Issue 394](https://github.com/jamietre/ImageMapster/issues/394) [TouchScreen only] Weird highlight glitch when touch on the other area beside the map.
+- [Issue 394](https://github.com/jamietre/ImageMapster/issues/394) \[TouchScreen only] Weird highlight glitch when touch on the other area beside the map.
## Version 1.5.4 - 2021.02.20
@@ -190,7 +190,7 @@ Bug fixes:
Features:
-- [Issue #52](https://github.com/jamietre/ImageMapster/issues/52) Add "clickNavigate" feature to allow basic imagemap functionality
+- [Issue #52](https://github.com/jamietre/ImageMapster/issues/52) Add "clickNavigate" feature to allow basic image map functionality
- Add "highlight" option to programatically set/unset the highlight effect (as if a user just moused over an area vs. clicked)
- Detect touchscreen devices and disable "mouseover"
- [Issue #11](https://github.com/jamietre/ImageMapster/issues/11) Detect excanvas automatically and force into IE mode if present
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
index 5142bf9..0c3bc59 100644
--- a/CODE_OF_CONDUCT.md
+++ b/CODE_OF_CONDUCT.md
@@ -70,7 +70,7 @@ members of the project's leadership.
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at ').addClass('mapster_el').hide();
+
+ index = me._add(image[0]);
+
+ image
+ .on('load.mapster', function (e) {
+ me.imageLoaded.call(me, e);
+ })
+ .on('error.mapster', function (e) {
+ me.imageLoadError.call(me, e);
+ });
+
+ image.attr('src', src);
+ } else {
+ // use attr because we want the actual source, not the resolved path the browser will return directly calling image.src
+
+ index = me._add($(image)[0]);
+ }
+ if (id) {
+ if (this[id]) {
+ throw (
+ id + ' is already used or is not available as an altImage alias.'
+ );
+ }
+ me.ids.push(id);
+ me[id] = me[index];
+ }
+ return index;
+ },
+
+ /**
+ * Bind the images in this object,
+ * @return {Promise} a promise that resolves when the images have finished loading
+ */
+
+ bind: function () {
+ var me = this,
+ promise,
+ triesLeft = me.owner.options.configTimeout / 200,
+ /* A recursive function to continue checking that the images have been
+ loaded until a timeout has elapsed */
+
+ check = function () {
+ var i;
+
+ // refresh status of images
+
+ i = me.length;
+
+ while (i-- > 0) {
+ if (!me.isLoaded(i)) {
+ break;
+ }
+ }
+
+ // check to see if every image has already been loaded
+
+ if (me.complete()) {
+ me.resolve();
+ } else {
+ // to account for failure of onLoad to fire in rare situations
+ if (triesLeft-- > 0) {
+ me.imgTimeout = window.setTimeout(function () {
+ check.call(me, true);
+ }, 50);
+ } else {
+ me.imageLoadError.call(me);
+ }
+ }
+ };
+
+ promise = me.deferred = u.defer();
+
+ check();
+ return promise;
+ },
+
+ resolve: function () {
+ var me = this,
+ resolver = me.deferred;
+
+ if (resolver) {
+ // Make a copy of the resolver before calling & removing it to ensure
+ // it is not called twice
+ me.deferred = null;
+ resolver.resolve();
+ }
+ },
+
+ /**
+ * Event handler for image onload
+ * @param {object} e jQuery event data
+ */
+
+ imageLoaded: function (e) {
+ var me = this,
+ index = me.indexOf(e.target);
+
+ if (index >= 0) {
+ me.status[index] = true;
+ if ($.inArray(false, me.status) < 0) {
+ me.resolve();
+ }
+ }
+ },
+
+ /**
+ * Event handler for onload error
+ * @param {object} e jQuery event data
+ */
+
+ imageLoadError: function (e) {
+ clearTimeout(this.imgTimeout);
+ this.triesLeft = 0;
+ var err = e
+ ? 'The image ' + e.target.src + ' failed to load.'
+ : 'The images never seemed to finish loading. You may just need to increase the configTimeout if images could take a long time to load.';
+ throw err;
+ },
+ /**
+ * Test if the image at specificed index has finished loading
+ * @param {int} index The image index
+ * @return {boolean} true if loaded, false if not
+ */
+
+ isLoaded: function (index) {
+ var img,
+ me = this,
+ status = me.status;
+
+ if (status[index]) {
+ return true;
+ }
+ img = me[index];
+
+ if (typeof img.complete !== 'undefined') {
+ status[index] = img.complete;
+ } else {
+ status[index] = !!u.imgWidth(img);
+ }
+ // if complete passes, the image is loaded, but may STILL not be available because of stuff like adblock.
+ // make sure it is.
+
+ return status[index];
+ }
+ };
+})(jQuery);
+
+/*
+ mapdata.js
+ The MapData object, repesents an instance of a single bound imagemap
+*/
+
+(function ($) {
+ 'use strict';
+
+ var m = $.mapster,
+ u = m.utils;
+
+ /**
+ * Set default values for MapData object properties
+ * @param {MapData} me The MapData object
+ */
+
+ function initializeDefaults(me) {
+ $.extend(me, {
+ complete: false, // (bool) when configuration is complete
+ map: null, // ($) the image map
+ base_canvas: null, // (canvas|var) where selections are rendered
+ overlay_canvas: null, // (canvas|var) where highlights are rendered
+ commands: [], // {} commands that were run before configuration was completed (b/c images weren't loaded)
+ data: [], // MapData[] area groups
+ mapAreas: [], // MapArea[] list. AreaData entities contain refs to this array, so options are stored with each.
+ _xref: {}, // (int) xref of mapKeys to data[]
+ highlightId: -1, // (int) the currently highlighted element.
+ currentAreaId: -1,
+ _tooltip_events: [], // {} info on events we bound to a tooltip container, so we can properly unbind them
+ scaleInfo: null, // {} info about the image size, scaling, defaults
+ index: -1, // index of this in map_cache - so we have an ID to use for wraper div
+ activeAreaEvent: null,
+ autoResizeTimer: null // tracks autoresize timer based on options.autoResizeDelay
+ });
+ }
+
+ /**
+ * Return an array of all image-containing options from an options object;
+ * that is, containers that may have an "altImage" property
+ *
+ * @param {object} obj An options object
+ * @return {object[]} An array of objects
+ */
+ function getOptionImages(obj) {
+ return [obj, obj.render_highlight, obj.render_select];
+ }
+
+ /**
+ * Parse all the altImage references, adding them to the library so they can be preloaded
+ * and aliased.
+ *
+ * @param {MapData} me The MapData object on which to operate
+ */
+ function configureAltImages(me) {
+ var opts = me.options,
+ mi = me.images;
+
+ // add alt images
+
+ if (m.hasCanvas()) {
+ // map altImage library first
+
+ $.each(opts.altImages || {}, function (i, e) {
+ mi.add(e, i);
+ });
+
+ // now find everything else
+
+ $.each([opts].concat(opts.areas), function (_, e) {
+ $.each(getOptionImages(e), function (_, e2) {
+ if (e2 && e2.altImage) {
+ e2.altImageId = mi.add(e2.altImage);
+ }
+ });
+ });
+ }
+
+ // set area_options
+ me.area_options = u.updateProps(
+ {}, // default options for any MapArea
+ m.area_defaults,
+ opts
+ );
+ }
+
+ /**
+ * Queue a mouse move action based on current delay settings
+ * (helper for mouseover/mouseout handlers)
+ *
+ * @param {MapData} me The MapData context
+ * @param {number} delay The number of milliseconds to delay the action
+ * @param {AreaData} area AreaData affected
+ * @param {Deferred} deferred A deferred object to return (instead of a new one)
+ * @return {Promise} A promise that resolves when the action is completed
+ */
+ function queueMouseEvent(me, delay, area, deferred) {
+ deferred = deferred || u.when.defer();
+
+ function cbFinal(areaId) {
+ if (me.currentAreaId !== areaId && me.highlightId >= 0) {
+ deferred.resolve({ completeAction: true });
+ }
+ }
+ if (me.activeAreaEvent) {
+ window.clearTimeout(me.activeAreaEvent);
+ me.activeAreaEvent = 0;
+ }
+ if (delay < 0) {
+ deferred.resolve({ completeAction: false });
+ } else {
+ if (area.owner.currentAction || delay) {
+ me.activeAreaEvent = window.setTimeout(
+ (function () {
+ return function () {
+ queueMouseEvent(me, 0, area, deferred);
+ };
+ })(area),
+ delay || 100
+ );
+ } else {
+ cbFinal(area.areaId);
+ }
+ }
+ return deferred;
+ }
+
+ function shouldNavigateTo(href) {
+ return !!href && href !== '#';
+ }
+
+ /**
+ * Mousedown event. This is captured only to prevent browser from drawing an outline around an
+ * area when it's clicked.
+ *
+ * @param {EventData} e jQuery event data
+ */
+
+ function mousedown(e) {
+ if (!m.hasCanvas()) {
+ this.blur();
+ }
+ e.preventDefault();
+ }
+
+ /**
+ * Mouseover event. Handle highlight rendering and client callback on mouseover
+ *
+ * @param {MapData} me The MapData context
+ * @param {EventData} e jQuery event data
+ * @return {[type]} [description]
+ */
+
+ function mouseover(me, e) {
+ var arData = me.getAllDataForArea(this),
+ ar = arData.length ? arData[0] : null;
+
+ // mouseover events are ignored entirely while resizing, though we do care about mouseout events
+ // and must queue the action to keep things clean.
+
+ if (!ar || ar.isNotRendered() || ar.owner.currentAction) {
+ return;
+ }
+
+ if (me.currentAreaId === ar.areaId) {
+ return;
+ }
+ if (me.highlightId !== ar.areaId) {
+ me.clearEffects();
+
+ ar.highlight();
+
+ if (me.options.showToolTip) {
+ $.each(arData, function (_, e) {
+ if (e.effectiveOptions().toolTip) {
+ e.showToolTip();
+ }
+ });
+ }
+ }
+
+ me.currentAreaId = ar.areaId;
+
+ if (u.isFunction(me.options.onMouseover)) {
+ me.options.onMouseover.call(this, {
+ e: e,
+ options: ar.effectiveOptions(),
+ key: ar.key,
+ selected: ar.isSelected()
+ });
+ }
+ }
+
+ /**
+ * Mouseout event.
+ *
+ * @param {MapData} me The MapData context
+ * @param {EventData} e jQuery event data
+ * @return {[type]} [description]
+ */
+
+ function mouseout(me, e) {
+ var newArea,
+ ar = me.getDataForArea(this),
+ opts = me.options;
+
+ if (me.currentAreaId < 0 || !ar) {
+ return;
+ }
+
+ newArea = me.getDataForArea(e.relatedTarget);
+
+ if (newArea === ar) {
+ return;
+ }
+
+ me.currentAreaId = -1;
+ ar.area = null;
+
+ queueMouseEvent(me, opts.mouseoutDelay, ar).then(function (result) {
+ if (!result.completeAction) {
+ return;
+ }
+ me.clearEffects();
+ });
+
+ if (u.isFunction(opts.onMouseout)) {
+ opts.onMouseout.call(this, {
+ e: e,
+ options: opts,
+ key: ar.key,
+ selected: ar.isSelected()
+ });
+ }
+ }
+
+ /**
+ * Clear any active tooltip or highlight
+ *
+ * @param {MapData} me The MapData context
+ * @param {EventData} e jQuery event data
+ * @return {[type]} [description]
+ */
+
+ function clearEffects(me) {
+ var opts = me.options;
+
+ me.ensureNoHighlight();
+
+ if (
+ opts.toolTipClose &&
+ $.inArray('area-mouseout', opts.toolTipClose) >= 0 &&
+ me.activeToolTip
+ ) {
+ me.clearToolTip();
+ }
+ }
+
+ /**
+ * Mouse click event handler
+ *
+ * @param {MapData} me The MapData context
+ * @param {EventData} e jQuery event data
+ * @return {[type]} [description]
+ */
+
+ function click(me, e) {
+ var list,
+ list_target,
+ newSelectionState,
+ canChangeState,
+ cbResult,
+ that = this,
+ ar = me.getDataForArea(this),
+ opts = me.options,
+ navDetails,
+ areaOpts;
+
+ function navigateTo(mode, href, target) {
+ switch (mode) {
+ // if no target is specified, use legacy
+ // behavior and change current window
+ case 'open':
+ window.open(href, target || '_self');
+ return;
+
+ // default legacy behavior of ImageMapster
+ default:
+ window.location.href = href;
+ return;
+ }
+ }
+
+ function getNavDetails(ar, mode, defaultHref) {
+ if (mode === 'open') {
+ var elHref = $(ar.area).attr('href'),
+ useEl = shouldNavigateTo(elHref);
+
+ return {
+ href: useEl ? elHref : ar.href,
+ target: useEl ? $(ar.area).attr('target') : ar.hrefTarget
+ };
+ }
+
+ return {
+ href: defaultHref
+ };
+ }
+
+ function clickArea(ar) {
+ var target;
+ canChangeState =
+ ar.isSelectable() && (ar.isDeselectable() || !ar.isSelected());
+
+ if (canChangeState) {
+ newSelectionState = !ar.isSelected();
+ } else {
+ newSelectionState = ar.isSelected();
+ }
+
+ list_target = m.getBoundList(opts, ar.key);
+
+ if (u.isFunction(opts.onClick)) {
+ cbResult = opts.onClick.call(that, {
+ e: e,
+ listTarget: list_target,
+ key: ar.key,
+ selected: newSelectionState
+ });
+
+ if (u.isBool(cbResult)) {
+ if (!cbResult) {
+ return false;
+ }
+ target = getNavDetails(
+ ar,
+ opts.navigateMode,
+ $(ar.area).attr('href')
+ );
+ if (shouldNavigateTo(target.href)) {
+ navigateTo(opts.navigateMode, target.href, target.target);
+ return false;
+ }
+ }
+ }
+
+ if (canChangeState) {
+ ar.toggle();
+ }
+ }
+
+ mousedown.call(this, e);
+
+ navDetails = getNavDetails(ar, opts.navigateMode, ar.href);
+ if (opts.clickNavigate && shouldNavigateTo(navDetails.href)) {
+ navigateTo(opts.navigateMode, navDetails.href, navDetails.target);
+ return;
+ }
+
+ if (ar && !ar.owner.currentAction) {
+ opts = me.options;
+ clickArea(ar);
+ areaOpts = ar.effectiveOptions();
+ if (areaOpts.includeKeys) {
+ list = u.split(areaOpts.includeKeys);
+ $.each(list, function (_, e) {
+ var ar = me.getDataForKey(e.toString());
+ if (!ar.options.isMask) {
+ clickArea(ar);
+ }
+ });
+ }
+ }
+ }
+
+ /**
+ * Prototype for a MapData object, representing an ImageMapster bound object
+ * @param {Element} image an IMG element
+ * @param {object} options ImageMapster binding options
+ */
+ m.MapData = function (image, options) {
+ var me = this;
+
+ // (Image) main map image
+
+ me.image = image;
+
+ me.images = new m.MapImages(me);
+ me.graphics = new m.Graphics(me);
+
+ // save the initial style of the image for unbinding. This is problematic, chrome
+ // duplicates styles when assigning, and cssText is apparently not universally supported.
+ // Need to do something more robust to make unbinding work universally.
+
+ me.imgCssText = image.style.cssText || null;
+
+ initializeDefaults(me);
+
+ me.configureOptions(options);
+
+ // create context-bound event handlers from our private functions
+
+ me.mouseover = function (e) {
+ mouseover.call(this, me, e);
+ };
+ me.mouseout = function (e) {
+ mouseout.call(this, me, e);
+ };
+ me.click = function (e) {
+ click.call(this, me, e);
+ };
+ me.clearEffects = function (e) {
+ clearEffects.call(this, me, e);
+ };
+ me.mousedown = function (e) {
+ mousedown.call(this, e);
+ };
+ };
+
+ m.MapData.prototype = {
+ constructor: m.MapData,
+
+ /**
+ * Set target.options from defaults + options
+ * @param {[type]} target The target
+ * @param {[type]} options The options to merge
+ */
+
+ configureOptions: function (options) {
+ this.options = u.updateProps({}, m.defaults, options);
+ },
+
+ /**
+ * Ensure all images are loaded
+ * @return {Promise} A promise that resolves when the images have finished loading (or fail)
+ */
+
+ bindImages: function () {
+ var me = this,
+ mi = me.images;
+
+ // reset the images if this is a rebind
+
+ if (mi.length > 2) {
+ mi.splice(2);
+ } else if (mi.length === 0) {
+ // add the actual main image
+ mi.add(me.image);
+ // will create a duplicate of the main image, we need this to get raw size info
+ mi.add(me.image.src);
+ }
+
+ configureAltImages(me);
+
+ return me.images.bind();
+ },
+
+ /**
+ * Test whether an async action is currently in progress
+ * @return {Boolean} true or false indicating state
+ */
+
+ isActive: function () {
+ return !this.complete || this.currentAction;
+ },
+
+ /**
+ * Return an object indicating the various states. This isn't really used by
+ * production code.
+ *
+ * @return {object} An object with properties for various states
+ */
+
+ state: function () {
+ return {
+ complete: this.complete,
+ resizing: this.currentAction === 'resizing',
+ zoomed: this.zoomed,
+ zoomedArea: this.zoomedArea,
+ scaleInfo: this.scaleInfo
+ };
+ },
+
+ /**
+ * Get a unique ID for the wrapper of this imagemapster
+ * @return {string} A string that is unique to this image
+ */
+
+ wrapId: function () {
+ return 'mapster_wrap_' + this.index;
+ },
+ instanceEventNamespace: function () {
+ return '.mapster.' + this.wrapId();
+ },
+ _idFromKey: function (key) {
+ return typeof key === 'string' &&
+ Object.prototype.hasOwnProperty.call(this._xref, key)
+ ? this._xref[key]
+ : -1;
+ },
+
+ /**
+ * Return a comma-separated string of all selected keys
+ * @return {string} CSV of all keys that are currently selected
+ */
+
+ getSelected: function () {
+ var result = '';
+ $.each(this.data, function (_, e) {
+ if (e.isSelected()) {
+ result += (result ? ',' : '') + this.key;
+ }
+ });
+ return result;
+ },
+
+ /**
+ * Get an array of MapAreas associated with a specific AREA based on the keys for that area
+ * @param {Element} area An HTML AREA
+ * @param {number} atMost A number limiting the number of areas to be returned (typically 1 or 0 for no limit)
+ * @return {MapArea[]} Array of MapArea objects
+ */
+
+ getAllDataForArea: function (area, atMost) {
+ var i,
+ ar,
+ result,
+ me = this,
+ key = $(area).filter('area').attr(me.options.mapKey);
+
+ if (key) {
+ result = [];
+ key = u.split(key);
+
+ for (i = 0; i < (atMost || key.length); i++) {
+ ar = me.data[me._idFromKey(key[i])];
+ if (ar) {
+ ar.area = area.length ? area[0] : area;
+ // set the actual area moused over/selected
+ // TODO: this is a brittle model for capturing which specific area - if this method was not used,
+ // ar.area could have old data. fix this.
+ result.push(ar);
+ }
+ }
+ }
+
+ return result;
+ },
+ getDataForArea: function (area) {
+ var ar = this.getAllDataForArea(area, 1);
+ return ar ? ar[0] || null : null;
+ },
+ getDataForKey: function (key) {
+ return this.data[this._idFromKey(key)];
+ },
+
+ /**
+ * Get the primary keys associated with an area group.
+ * If this is a primary key, it will be returned.
+ *
+ * @param {string key An area key
+ * @return {string} A CSV of area keys
+ */
+
+ getKeysForGroup: function (key) {
+ var ar = this.getDataForKey(key);
+
+ return !ar
+ ? ''
+ : ar.isPrimary
+ ? ar.key
+ : this.getPrimaryKeysForMapAreas(ar.areas()).join(',');
+ },
+
+ /**
+ * given an array of MapArea object, return an array of its unique primary keys
+ * @param {MapArea[]} areas The areas to analyze
+ * @return {string[]} An array of unique primary keys
+ */
+
+ getPrimaryKeysForMapAreas: function (areas) {
+ var keys = [];
+ $.each(areas, function (_, e) {
+ if ($.inArray(e.keys[0], keys) < 0) {
+ keys.push(e.keys[0]);
+ }
+ });
+ return keys;
+ },
+ getData: function (obj) {
+ if (typeof obj === 'string') {
+ return this.getDataForKey(obj);
+ } else if ((obj && obj.mapster) || u.isElement(obj)) {
+ return this.getDataForArea(obj);
+ } else {
+ return null;
+ }
+ },
+ // remove highlight if present, raise event
+ ensureNoHighlight: function () {
+ var ar;
+ if (this.highlightId >= 0) {
+ this.graphics.clearHighlight();
+ ar = this.data[this.highlightId];
+ ar.changeState('highlight', false);
+ this.setHighlightId(-1);
+ }
+ },
+ setHighlightId: function (id) {
+ this.highlightId = id;
+ },
+
+ /**
+ * Clear all active selections on this map
+ */
+
+ clearSelections: function () {
+ $.each(this.data, function (_, e) {
+ if (e.selected) {
+ e.deselect(true);
+ }
+ });
+ this.removeSelectionFinish();
+ },
+
+ /**
+ * Set area options from an array of option data.
+ *
+ * @param {object[]} areas An array of objects containing area-specific options
+ */
+
+ setAreaOptions: function (areas) {
+ var i, area_options, ar;
+ areas = areas || [];
+
+ // refer by: map_data.options[map_data.data[x].area_option_id]
+
+ for (i = areas.length - 1; i >= 0; i--) {
+ area_options = areas[i];
+ if (area_options) {
+ ar = this.getDataForKey(area_options.key);
+ if (ar) {
+ u.updateProps(ar.options, area_options);
+
+ // TODO: will not deselect areas that were previously selected, so this only works
+ // for an initial bind.
+
+ if (u.isBool(area_options.selected)) {
+ ar.selected = area_options.selected;
+ }
+ }
+ }
+ }
+ },
+ // keys: a comma-separated list
+ drawSelections: function (keys) {
+ var i,
+ key_arr = u.asArray(keys);
+
+ for (i = key_arr.length - 1; i >= 0; i--) {
+ this.data[key_arr[i]].drawSelection();
+ }
+ },
+ redrawSelections: function () {
+ $.each(this.data, function (_, e) {
+ if (e.isSelectedOrStatic()) {
+ e.drawSelection();
+ }
+ });
+ },
+ // Causes changes to the bound list based on the user action (select or deselect)
+ // area: the jQuery area object
+ // returns the matching elements from the bound list for the first area passed
+ // (normally only one should be passed, but a list can be passed)
+ setBoundListProperties: function (opts, target, selected) {
+ target.each(function (_, e) {
+ if (opts.listSelectedClass) {
+ if (selected) {
+ $(e).addClass(opts.listSelectedClass);
+ } else {
+ $(e).removeClass(opts.listSelectedClass);
+ }
+ }
+ if (opts.listSelectedAttribute) {
+ $(e).prop(opts.listSelectedAttribute, selected);
+ }
+ });
+ },
+ clearBoundListProperties: function (opts) {
+ var me = this;
+ if (!opts.boundList) {
+ return;
+ }
+ me.setBoundListProperties(opts, opts.boundList, false);
+ },
+ refreshBoundList: function (opts) {
+ var me = this;
+ me.clearBoundListProperties(opts);
+ me.setBoundListProperties(
+ opts,
+ m.getBoundList(opts, me.getSelected()),
+ true
+ );
+ },
+ setBoundList: function (opts) {
+ var me = this,
+ sorted_list = me.data.slice(0),
+ sort_func;
+ if (opts.sortList) {
+ if (opts.sortList === 'desc') {
+ sort_func = function (a, b) {
+ return a === b ? 0 : a > b ? -1 : 1;
+ };
+ } else {
+ sort_func = function (a, b) {
+ return a === b ? 0 : a < b ? -1 : 1;
+ };
+ }
+
+ sorted_list.sort(function (a, b) {
+ a = a.value;
+ b = b.value;
+ return sort_func(a, b);
+ });
+ }
+ me.options.boundList = opts.onGetList.call(me.image, sorted_list);
+ },
+ ///called when images are done loading
+ initialize: function () {
+ var imgCopy,
+ base_canvas,
+ overlay_canvas,
+ wrap,
+ parentId,
+ css,
+ i,
+ size,
+ img,
+ scale,
+ me = this,
+ opts = me.options;
+
+ if (me.complete) {
+ return;
+ }
+
+ img = $(me.image);
+
+ parentId = img.parent().attr('id');
+
+ // create a div wrapper only if there's not already a wrapper, otherwise, own it
+
+ if (
+ parentId &&
+ parentId.length >= 12 &&
+ parentId.substring(0, 12) === 'mapster_wrap'
+ ) {
+ wrap = img.parent();
+ wrap.attr('id', me.wrapId());
+ } else {
+ wrap = $('');
+
+ if (opts.wrapClass) {
+ if (opts.wrapClass === true) {
+ wrap.addClass(img[0].className);
+ } else {
+ wrap.addClass(opts.wrapClass);
+ }
+ }
+ }
+ me.wrapper = wrap;
+
+ // me.images[1] is the copy of the original image. It should be loaded & at its native size now so we can obtain the true
+ // width & height. This is needed to scale the imagemap if not being shown at its native size. It is also needed purely
+ // to finish binding in case the original image was not visible. It can be impossible in some browsers to obtain the
+ // native size of a hidden image.
+
+ me.scaleInfo = scale = u.scaleMap(
+ me.images[0],
+ me.images[1],
+ opts.scaleMap
+ );
+
+ me.base_canvas = base_canvas = me.graphics.createVisibleCanvas(me);
+ me.overlay_canvas = overlay_canvas = me.graphics.createVisibleCanvas(me);
+
+ // Now we got what we needed from the copy -clone from the original image again to make sure any other attributes are copied
+ imgCopy = $(me.images[1])
+ .addClass('mapster_el ' + me.images[0].className)
+ .attr({ id: null, usemap: null });
+
+ size = u.size(me.images[0]);
+
+ if (size.complete) {
+ imgCopy.css({
+ width: size.width,
+ height: size.height
+ });
+ }
+
+ me.buildDataset();
+
+ // now that we have processed all the areas, set css for wrapper, scale map if needed
+
+ css = $.extend(
+ {
+ display: 'block',
+ position: 'relative',
+ padding: 0
+ },
+ opts.enableAutoResizeSupport === true
+ ? {}
+ : {
+ width: scale.width,
+ height: scale.height
+ }
+ );
+
+ if (opts.wrapCss) {
+ $.extend(css, opts.wrapCss);
+ }
+ // if we were rebinding with an existing wrapper, the image will aready be in it
+ if (img.parent()[0] !== me.wrapper[0]) {
+ img.before(me.wrapper);
+ }
+
+ wrap.css(css);
+
+ // move all generated images into the wrapper for easy removal later
+
+ $(me.images.slice(2)).hide();
+ for (i = 1; i < me.images.length; i++) {
+ wrap.append(me.images[i]);
+ }
+
+ //me.images[1].style.cssText = me.image.style.cssText;
+
+ wrap
+ .append(base_canvas)
+ .append(overlay_canvas)
+ .append(img.css(m.canvas_style));
+
+ // images[0] is the original image with map, images[1] is the copy/background that is visible
+
+ u.setOpacity(me.images[0], 0);
+ $(me.images[1]).show();
+
+ u.setOpacity(me.images[1], 1);
+
+ me.complete = true;
+ me.processCommandQueue();
+
+ if (opts.enableAutoResizeSupport === true) {
+ me.configureAutoResize();
+ }
+
+ me.onConfigured();
+ },
+
+ onConfigured: function () {
+ var me = this,
+ $img = $(me.image),
+ opts = me.options;
+
+ if (opts.onConfigured && typeof opts.onConfigured === 'function') {
+ opts.onConfigured.call($img, true);
+ }
+ },
+
+ // when rebind is true, the MapArea data will not be rebuilt.
+ buildDataset: function (rebind) {
+ var sel,
+ areas,
+ j,
+ area_id,
+ $area,
+ area,
+ curKey,
+ mapArea,
+ key,
+ keys,
+ mapAreaId,
+ group_value,
+ dataItem,
+ href,
+ me = this,
+ opts = me.options,
+ default_group;
+
+ function addAreaData(key, value) {
+ var dataItem = new m.AreaData(me, key, value);
+ dataItem.areaId = me._xref[key] = me.data.push(dataItem) - 1;
+ return dataItem.areaId;
+ }
+
+ me._xref = {};
+ me.data = [];
+ if (!rebind) {
+ me.mapAreas = [];
+ }
+
+ default_group = !opts.mapKey;
+ if (default_group) {
+ opts.mapKey = 'data-mapster-key';
+ }
+
+ // the [attribute] selector is broken on old IE with jQuery. hasVml() is a quick and dirty
+ // way to test for that
+
+ sel = m.hasVml()
+ ? 'area'
+ : default_group
+ ? 'area[coords]'
+ : 'area[' + opts.mapKey + ']';
+
+ areas = $(me.map).find(sel).off('.mapster');
+
+ for (mapAreaId = 0; mapAreaId < areas.length; mapAreaId++) {
+ area_id = 0;
+ area = areas[mapAreaId];
+ $area = $(area);
+
+ // skip areas with no coords - selector broken for older ie
+ if (!area.coords) {
+ continue;
+ }
+ // Create a key if none was assigned by the user
+
+ if (default_group) {
+ curKey = String(mapAreaId);
+ $area.attr('data-mapster-key', curKey);
+ } else {
+ curKey = area.getAttribute(opts.mapKey);
+ }
+
+ // conditions for which the area will be bound to mouse events
+ // only bind to areas that don't have nohref. ie 6&7 cannot detect the presence of nohref, so we have to also not bind if href is missing.
+
+ if (rebind) {
+ mapArea = me.mapAreas[$area.data('mapster') - 1];
+ mapArea.configure(curKey);
+ mapArea.areaDataXref = [];
+ } else {
+ mapArea = new m.MapArea(me, area, curKey);
+ me.mapAreas.push(mapArea);
+ }
+
+ keys = mapArea.keys; // converted to an array by mapArea
+
+ // Iterate through each mapKey assigned to this area
+ for (j = keys.length - 1; j >= 0; j--) {
+ key = keys[j];
+
+ if (opts.mapValue) {
+ group_value = $area.attr(opts.mapValue);
+ }
+ if (default_group) {
+ // set an attribute so we can refer to the area by index from the DOM object if no key
+ area_id = addAreaData(me.data.length, group_value);
+ dataItem = me.data[area_id];
+ dataItem.key = key = area_id.toString();
+ } else {
+ area_id = me._xref[key];
+ if (area_id >= 0) {
+ dataItem = me.data[area_id];
+ if (group_value && !me.data[area_id].value) {
+ dataItem.value = group_value;
+ }
+ } else {
+ area_id = addAreaData(key, group_value);
+ dataItem = me.data[area_id];
+ dataItem.isPrimary = j === 0;
+ }
+ }
+ mapArea.areaDataXref.push(area_id);
+ dataItem.areasXref.push(mapAreaId);
+ }
+
+ href = $area.attr('href');
+ if (shouldNavigateTo(href) && !dataItem.href) {
+ dataItem.href = href;
+ dataItem.hrefTarget = $area.attr('target');
+ }
+
+ if (!mapArea.nohref) {
+ $area
+ .on('click.mapster', me.click)
+ .on(
+ 'mouseover.mapster touchstart.mapster.noPreventDefault',
+ me.mouseover
+ )
+ .on(
+ 'mouseout.mapster touchend.mapster.noPreventDefault',
+ me.mouseout
+ )
+ .on('mousedown.mapster', me.mousedown);
+ }
+
+ // store an ID with each area.
+ $area.data('mapster', mapAreaId + 1);
+ }
+
+ // TODO listenToList
+ // if (opts.listenToList && opts.nitG) {
+ // opts.nitG.bind('click.mapster', event_hooks[map_data.hooks_index].listclick_hook);
+ // }
+
+ // populate areas from config options
+ me.setAreaOptions(opts.areas);
+ if (opts.onGetList) {
+ me.setBoundList(opts);
+ }
+
+ if (opts.boundList && opts.boundList.length > 0) {
+ me.refreshBoundList(opts);
+ }
+
+ if (rebind) {
+ me.graphics.removeSelections();
+ me.graphics.refreshSelections();
+ } else {
+ me.redrawSelections();
+ }
+ },
+ processCommandQueue: function () {
+ var cur,
+ me = this;
+ while (!me.currentAction && me.commands.length) {
+ cur = me.commands[0];
+ me.commands.splice(0, 1);
+ m.impl[cur.command].apply(cur.that, cur.args);
+ }
+ },
+ clearEvents: function () {
+ $(this.map).find('area').off('.mapster');
+ $(this.images).off('.mapster');
+ $(window).off(this.instanceEventNamespace());
+ $(window.document).off(this.instanceEventNamespace());
+ },
+ _clearCanvases: function (preserveState) {
+ // remove the canvas elements created
+ if (!preserveState) {
+ $(this.base_canvas).remove();
+ }
+ $(this.overlay_canvas).remove();
+ },
+ clearMapData: function (preserveState) {
+ var me = this;
+ this._clearCanvases(preserveState);
+
+ // release refs to DOM elements
+ $.each(this.data, function (_, e) {
+ e.reset();
+ });
+ this.data = null;
+ if (!preserveState) {
+ // get rid of everything except the original image
+ this.image.style.cssText = this.imgCssText;
+ $(this.wrapper).before(this.image).remove();
+ }
+
+ me.images.clear();
+
+ if (me.autoResizeTimer) {
+ clearTimeout(me.autoResizeTimer);
+ }
+ me.autoResizeTimer = null;
+ this.image = null;
+ u.ifFunction(this.clearToolTip, this);
+ },
+
+ // Compelete cleanup process for deslecting items. Called after a batch operation, or by AreaData for single
+ // operations not flagged as "partial"
+
+ removeSelectionFinish: function () {
+ var g = this.graphics;
+
+ g.refreshSelections();
+ // do not call ensure_no_highlight- we don't really want to unhilight it, just remove the effect
+ g.clearHighlight();
+ }
+ };
+})(jQuery);
+
+/* areadata.js
+ AreaData and MapArea protoypes
+*/
+
+(function ($) {
+ 'use strict';
+
+ var m = $.mapster,
+ u = m.utils;
+
+ function optsAreEqual(opts1, opts2) {
+ // deep compare is not trivial and current testing framework
+ // doesn't provide a way to detect this accurately so only
+ // implementing basic compare at this time.
+ // TODO: Implement deep obj compare or for perf reasons shallow
+ // with a short-circuit if deep is required for full compare
+ // since config options should only require shallow
+ return opts1 === opts2;
+ }
+
+ /**
+ * Update selected state of this area
+ *
+ * @param {boolean} selected Determines whether areas are selected or deselected
+ */
+ function updateSelected(selected) {
+ var me = this,
+ prevSelected = me.selected;
+
+ me.selected = selected;
+ me.staticStateOverridden = u.isBool(me.effectiveOptions().staticState)
+ ? true
+ : false;
+
+ return prevSelected !== selected;
+ }
+
+ /**
+ * Select this area
+ *
+ * @param {AreaData} me AreaData context
+ * @param {object} options Options for rendering the selection
+ */
+ function select(options) {
+ function buildOptions() {
+ // map the altImageId if an altimage was passed
+ return $.extend(me.effectiveRenderOptions('select'), options, {
+ altImageId: o.images.add(options.altImage)
+ });
+ }
+
+ var me = this,
+ o = me.owner,
+ hasOptions = !$.isEmptyObject(options),
+ newOptsCache = hasOptions ? buildOptions() : null,
+ // Per docs, options changed via set_options for an area that is
+ // already selected will not be reflected until the next time
+ // the area becomes selected.
+ changeOptions = hasOptions
+ ? !optsAreEqual(me.optsCache, newOptsCache)
+ : false,
+ selectedHasChanged = false,
+ isDrawn = me.isSelectedOrStatic();
+
+ // This won't clear staticState === true areas that have not been overridden via API set/select/deselect.
+ // This could be optimized to only clear if we are the only one selected. However, there are scenarios
+ // that do not respect singleSelect (e.g. initialization) so we force clear if there should only be one.
+ // TODO: Only clear if we aren't the only one selected (depends on #370)
+ if (o.options.singleSelect) {
+ o.clearSelections();
+ // we may (staticState === true) or may not still be visible
+ isDrawn = me.isSelectedOrStatic();
+ }
+
+ if (changeOptions) {
+ me.optsCache = newOptsCache;
+ }
+
+ // Update before we start drawing for methods
+ // that rely on internal selected value.
+ // Force update because area can be selected
+ // at multiple levels (selected / area_options.selected / staticState / etc.)
+ // and could have been cleared.
+ selectedHasChanged = me.updateSelected(true);
+
+ if (isDrawn && changeOptions) {
+ // no way to remove just this area from canvas so must refresh everything
+
+ // explicitly remove vml element since it uses removeSelections instead of refreshSelections
+ // TODO: Not sure why removeSelections isn't incorporated in to refreshSelections
+ // need to investigate and possibly consolidate
+ o.graphics.removeSelections(me.areaId);
+ o.graphics.refreshSelections();
+ } else if (!isDrawn) {
+ me.drawSelection();
+ }
+
+ // don't fire until everything is done
+ if (selectedHasChanged) {
+ me.changeState('select', true);
+ }
+ }
+
+ /**
+ * Deselect this area, optionally deferring finalization so additional areas can be deselected
+ * in a single operation
+ *
+ * @param {boolean} partial when true, the caller must invoke "finishRemoveSelection" to render
+ */
+
+ function deselect(partial) {
+ var me = this,
+ selectedHasChanged = false;
+
+ // update before we start drawing for methods
+ // that rely on internal selected value
+ // force update because area can be selected
+ // at multiple levels (selected / area_options.selected / staticState / etc.)
+ selectedHasChanged = me.updateSelected(false);
+
+ // release information about last area options when deselecting.
+ me.optsCache = null;
+ me.owner.graphics.removeSelections(me.areaId);
+
+ // Complete selection removal process. This is separated because it's very inefficient to perform the whole
+ // process for multiple removals, as the canvas must be totally redrawn at the end of the process.ar.remove
+ if (!partial) {
+ me.owner.removeSelectionFinish();
+ }
+
+ // don't fire until everything is done
+ if (selectedHasChanged) {
+ me.changeState('select', false);
+ }
+ }
+
+ /**
+ * Toggle the selection state of this area
+ * @param {object} options Rendering options, if toggling on
+ * @return {bool} The new selection state
+ */
+ function toggle(options) {
+ var me = this;
+ if (!me.isSelected()) {
+ me.select(options);
+ } else {
+ me.deselect();
+ }
+ return me.isSelected();
+ }
+
+ function isNoHref(areaEl) {
+ var $area = $(areaEl);
+ return u.hasAttribute($area, 'nohref') || !u.hasAttribute($area, 'href');
+ }
+
+ /**
+ * An AreaData object; represents a conceptual area that can be composed of
+ * one or more MapArea objects
+ *
+ * @param {MapData} owner The MapData object to which this belongs
+ * @param {string} key The key for this area
+ * @param {string} value The mapValue string for this area
+ */
+
+ m.AreaData = function (owner, key, value) {
+ $.extend(this, {
+ owner: owner,
+ key: key || '',
+ // means this represents the first key in a list of keys (it's the area group that gets highlighted on mouseover)
+ isPrimary: true,
+ areaId: -1,
+ href: '',
+ hrefTarget: null,
+ value: value || '',
+ options: {},
+ // "null" means unchanged. Use "isSelected" method to just test true/false
+ selected: null,
+ // "true" means selected has been set via API AND staticState is true/false
+ staticStateOverridden: false,
+ // xref to MapArea objects
+ areasXref: [],
+ // (temporary storage) - the actual area moused over
+ area: null,
+ // the last options used to render this. Cache so when re-drawing after a remove, changes in options won't
+ // break already selected things.
+ optsCache: null
+ });
+ };
+
+ /**
+ * The public API for AreaData object
+ */
+
+ m.AreaData.prototype = {
+ constuctor: m.AreaData,
+ select: select,
+ deselect: deselect,
+ toggle: toggle,
+ updateSelected: updateSelected,
+ areas: function () {
+ var i,
+ result = [];
+ for (i = 0; i < this.areasXref.length; i++) {
+ result.push(this.owner.mapAreas[this.areasXref[i]]);
+ }
+ return result;
+ },
+ // return all coordinates for all areas
+ coords: function (offset) {
+ var coords = [];
+ $.each(this.areas(), function (_, el) {
+ coords = coords.concat(el.coords(offset));
+ });
+ return coords;
+ },
+ reset: function () {
+ $.each(this.areas(), function (_, e) {
+ e.reset();
+ });
+ this.areasXref = [];
+ this.options = null;
+ },
+ // Return the effective selected state of an area, incorporating staticState
+ isSelectedOrStatic: function () {
+ var o = this.effectiveOptions();
+ return !u.isBool(o.staticState) || this.staticStateOverridden
+ ? this.isSelected()
+ : o.staticState;
+ },
+ isSelected: function () {
+ return u.isBool(this.selected)
+ ? this.selected
+ : u.isBool(this.owner.area_options.selected)
+ ? this.owner.area_options.selected
+ : false;
+ },
+ isSelectable: function () {
+ return u.isBool(this.effectiveOptions().staticState)
+ ? false
+ : u.isBool(this.owner.options.staticState)
+ ? false
+ : u.boolOrDefault(this.effectiveOptions().isSelectable, true);
+ },
+ isDeselectable: function () {
+ return u.isBool(this.effectiveOptions().staticState)
+ ? false
+ : u.isBool(this.owner.options.staticState)
+ ? false
+ : u.boolOrDefault(this.effectiveOptions().isDeselectable, true);
+ },
+ isNotRendered: function () {
+ return isNoHref(this.area) || this.effectiveOptions().isMask;
+ },
+ /**
+ * Return the overall options effective for this area.
+ * This should get the default options, and merge in area-specific options, finally
+ * overlaying options passed by parameter
+ *
+ * @param {[type]} options options which will supercede all other options for this area
+ * @return {[type]} the combined options
+ */
+
+ effectiveOptions: function (options) {
+ var opts = u.updateProps(
+ {},
+ this.owner.area_options,
+ this.options,
+ options || {},
+ {
+ id: this.areaId
+ }
+ );
+
+ opts.selected = this.isSelected();
+
+ return opts;
+ },
+
+ /**
+ * Return the options effective for this area for a "render" or "highlight" mode.
+ * This should get the default options, merge in the areas-specific options,
+ * and then the mode-specific options.
+ * @param {string} mode 'render' or 'highlight'
+ * @param {[type]} options options which will supercede all other options for this area
+ * @return {[type]} the combined options
+ */
+
+ effectiveRenderOptions: function (mode, options) {
+ var allOpts,
+ opts = this.optsCache;
+
+ if (!opts || mode === 'highlight') {
+ allOpts = this.effectiveOptions(options);
+ opts = u.updateProps({}, allOpts, allOpts['render_' + mode]);
+
+ if (mode !== 'highlight') {
+ this.optsCache = opts;
+ }
+ }
+ return $.extend({}, opts);
+ },
+
+ // Fire callback on area state change
+ changeState: function (state_type, state) {
+ if (u.isFunction(this.owner.options.onStateChange)) {
+ this.owner.options.onStateChange.call(this.owner.image, {
+ key: this.key,
+ state: state_type,
+ selected: state
+ });
+ }
+ if (state_type === 'select' && this.owner.options.boundList) {
+ this.owner.setBoundListProperties(
+ this.owner.options,
+ m.getBoundList(this.owner.options, this.key),
+ state
+ );
+ }
+ },
+
+ // highlight this area
+
+ highlight: function (options) {
+ var o = this.owner;
+ o.ensureNoHighlight();
+ if (this.effectiveOptions().highlight) {
+ o.graphics.addShapeGroup(this, 'highlight', options);
+ }
+ o.setHighlightId(this.areaId);
+ this.changeState('highlight', true);
+ },
+
+ // select this area. if "callEvent" is true then the state change event will be called. (This method can be used
+ // during config operations, in which case no event is indicated)
+
+ drawSelection: function () {
+ this.owner.graphics.addShapeGroup(this, 'select');
+ }
+ };
+ // represents an HTML area
+ m.MapArea = function (owner, areaEl, keys) {
+ if (!owner) {
+ return;
+ }
+ var me = this;
+ me.owner = owner; // a MapData object
+ me.area = areaEl;
+ me.areaDataXref = []; // a list of map_data.data[] id's for each areaData object containing this
+ me.originalCoords = [];
+ $.each(u.split(areaEl.coords), function (_, el) {
+ me.originalCoords.push(parseFloat(el));
+ });
+ me.length = me.originalCoords.length;
+ me.shape = u.getShape(areaEl);
+ me.nohref = isNoHref(areaEl);
+ me.configure(keys);
+ };
+ m.MapArea.prototype = {
+ constructor: m.MapArea,
+ configure: function (keys) {
+ this.keys = u.split(keys);
+ },
+ reset: function () {
+ this.area = null;
+ },
+ coords: function (offset) {
+ return $.map(this.originalCoords, function (e) {
+ return offset ? e : e + offset;
+ });
+ }
+ };
+})(jQuery);
+
+/* areacorners.js
+ determine the best place to put a box of dimensions (width,height) given a circle, rect or poly
+*/
+
+(function ($) {
+ 'use strict';
+
+ var u = $.mapster.utils;
+
+ /**
+ * Compute positions that will place a target with dimensions [width,height] outside
+ * but near the boundaries of the elements "elements". When an imagemap is passed, the
+ *
+ * @param {Element|Element[]} elements An element or an array of elements (such as a jQuery object)
+ * @param {Element} image The image to which area elements are bound, if this is an image map.
+ * @param {Element} container The contianer in which the target must be constrained (or document, if missing)
+ * @param {int} width The width of the target object
+ * @return {object} a structure with the x and y positions
+ */
+ u.areaCorners = function (elements, image, container, width, height) {
+ var pos,
+ found,
+ minX,
+ minY,
+ maxX,
+ maxY,
+ bestMinX,
+ bestMaxX,
+ bestMinY,
+ bestMaxY,
+ curX,
+ curY,
+ nest,
+ j,
+ offsetx = 0,
+ offsety = 0,
+ rootx,
+ rooty,
+ iCoords,
+ radius,
+ angle,
+ el,
+ coords = [];
+
+ // if a single element was passed, map it to an array
+
+ elements = elements.length ? elements : [elements];
+
+ container = container ? $(container) : $(document.body);
+
+ // get the relative root of calculation
+
+ pos = container.offset();
+ rootx = pos.left;
+ rooty = pos.top;
+
+ // with areas, all we know about is relative to the top-left corner of the image. We need to add an offset compared to
+ // the actual container. After this calculation, offsetx/offsety can be added to either the area coords, or the target's
+ // absolute position to get the correct top/left boundaries of the container.
+
+ if (image) {
+ pos = $(image).offset();
+ offsetx = pos.left;
+ offsety = pos.top;
+ }
+
+ // map the coordinates of any type of shape to a poly and use the logic. simpler than using three different
+ // calculation methods. Circles use a 20 degree increment for this estimation.
+
+ for (j = 0; j < elements.length; j++) {
+ el = elements[j];
+ if (el.nodeName === 'AREA') {
+ iCoords = u.split(el.coords, parseInt);
+
+ switch (u.getShape(el)) {
+ case 'circle':
+ case 'circ':
+ curX = iCoords[0];
+ curY = iCoords[1];
+ radius = iCoords[2];
+ coords = [];
+ for (j = 0; j < 360; j += 20) {
+ angle = (j * Math.PI) / 180;
+ coords.push(
+ curX + radius * Math.cos(angle),
+ curY + radius * Math.sin(angle)
+ );
+ }
+ break;
+ case 'rectangle':
+ case 'rect':
+ coords.push(
+ iCoords[0],
+ iCoords[1],
+ iCoords[2],
+ iCoords[1],
+ iCoords[2],
+ iCoords[3],
+ iCoords[0],
+ iCoords[3]
+ );
+ break;
+ default:
+ coords = coords.concat(iCoords);
+ break;
+ }
+
+ // map area positions to it's real position in the container
+
+ for (j = 0; j < coords.length; j += 2) {
+ coords[j] = parseInt(coords[j], 10) + offsetx;
+ coords[j + 1] = parseInt(coords[j + 1], 10) + offsety;
+ }
+ } else {
+ el = $(el);
+ pos = el.position();
+ coords.push(
+ pos.left,
+ pos.top,
+ pos.left + el.width(),
+ pos.top,
+ pos.left + el.width(),
+ pos.top + el.height(),
+ pos.left,
+ pos.top + el.height()
+ );
+ }
+ }
+
+ minX = minY = bestMinX = bestMinY = 999999;
+ maxX = maxY = bestMaxX = bestMaxY = -1;
+
+ for (j = coords.length - 2; j >= 0; j -= 2) {
+ curX = coords[j];
+ curY = coords[j + 1];
+
+ if (curX < minX) {
+ minX = curX;
+ bestMaxY = curY;
+ }
+ if (curX > maxX) {
+ maxX = curX;
+ bestMinY = curY;
+ }
+ if (curY < minY) {
+ minY = curY;
+ bestMaxX = curX;
+ }
+ if (curY > maxY) {
+ maxY = curY;
+ bestMinX = curX;
+ }
+ }
+
+ // try to figure out the best place for the tooltip
+
+ if (width && height) {
+ found = false;
+ $.each(
+ [
+ [bestMaxX - width, minY - height],
+ [bestMinX, minY - height],
+ [minX - width, bestMaxY - height],
+ [minX - width, bestMinY],
+ [maxX, bestMaxY - height],
+ [maxX, bestMinY],
+ [bestMaxX - width, maxY],
+ [bestMinX, maxY]
+ ],
+ function (_, e) {
+ if (!found && e[0] > rootx && e[1] > rooty) {
+ nest = e;
+ found = true;
+ return false;
+ }
+ }
+ );
+
+ // default to lower-right corner if nothing fit inside the boundaries of the image
+
+ if (!found) {
+ nest = [maxX, maxY];
+ }
+ }
+ return nest;
+ };
+})(jQuery);
+
+/*
+ scale.js
+ Resize and zoom functionality
+ Requires areacorners.js
+*/
+
+(function ($) {
+ 'use strict';
+
+ var m = $.mapster,
+ u = m.utils,
+ p = m.MapArea.prototype;
+
+ m.utils.getScaleInfo = function (eff, actual) {
+ var pct;
+ if (!actual) {
+ pct = 1;
+ actual = eff;
+ } else {
+ pct = eff.width / actual.width || eff.height / actual.height;
+ // make sure a float error doesn't muck us up
+ if (pct > 0.98 && pct < 1.02) {
+ pct = 1;
+ }
+ }
+ return {
+ scale: pct !== 1,
+ scalePct: pct,
+ realWidth: actual.width,
+ realHeight: actual.height,
+ width: eff.width,
+ height: eff.height,
+ ratio: eff.width / eff.height
+ };
+ };
+ // Scale a set of AREAs, return old data as an array of objects
+ m.utils.scaleMap = function (image, imageRaw, scale) {
+ // stunningly, jQuery width can return zero even as width does not, seems to happen only
+ // with adBlock or maybe other plugins. These must interfere with onload events somehow.
+
+ var vis = u.size(image),
+ raw = u.size(imageRaw, true);
+
+ if (!raw.complete()) {
+ throw 'Another script, such as an extension, appears to be interfering with image loading. Please let us know about this.';
+ }
+ if (!vis.complete()) {
+ vis = raw;
+ }
+ return this.getScaleInfo(vis, scale ? raw : null);
+ };
+
+ /**
+ * Resize the image map. Only one of newWidth and newHeight should be passed to preserve scale
+ *
+ * @param {int} width The new width OR an object containing named parameters matching this function sig
+ * @param {int} height The new height
+ * @param {int} effectDuration Time in ms for the resize animation, or zero for no animation
+ * @param {function} callback A function to invoke when the operation finishes
+ * @return {promise} NOT YET IMPLEMENTED
+ */
+
+ m.MapData.prototype.resize = function (width, height, duration, callback) {
+ var p,
+ promises,
+ newsize,
+ els,
+ highlightId,
+ ratio,
+ me = this;
+
+ // allow omitting duration
+ callback = callback || duration;
+
+ function sizeCanvas(canvas, w, h) {
+ if (m.hasCanvas()) {
+ canvas.width = w;
+ canvas.height = h;
+ } else {
+ $(canvas).width(w);
+ $(canvas).height(h);
+ }
+ }
+
+ // Finalize resize action, do callback, pass control to command queue
+
+ function cleanupAndNotify() {
+ me.currentAction = '';
+
+ if (u.isFunction(callback)) {
+ callback();
+ }
+
+ me.processCommandQueue();
+ }
+
+ // handle cleanup after the inner elements are resized
+
+ function finishResize() {
+ sizeCanvas(me.overlay_canvas, width, height);
+
+ // restore highlight state if it was highlighted before
+ if (highlightId >= 0) {
+ var areaData = me.data[highlightId];
+ areaData.tempOptions = { fade: false };
+ me.getDataForKey(areaData.key).highlight();
+ areaData.tempOptions = null;
+ }
+ sizeCanvas(me.base_canvas, width, height);
+ me.redrawSelections();
+ cleanupAndNotify();
+ }
+
+ function resizeMapData() {
+ $(me.image).css(newsize);
+ // start calculation at the same time as effect
+ me.scaleInfo = u.getScaleInfo(
+ {
+ width: width,
+ height: height
+ },
+ {
+ width: me.scaleInfo.realWidth,
+ height: me.scaleInfo.realHeight
+ }
+ );
+ $.each(me.data, function (_, e) {
+ $.each(e.areas(), function (_, e) {
+ e.resize();
+ });
+ });
+ }
+
+ if (me.scaleInfo.width === width && me.scaleInfo.height === height) {
+ return;
+ }
+
+ highlightId = me.highlightId;
+
+ if (!width) {
+ ratio = height / me.scaleInfo.realHeight;
+ width = Math.round(me.scaleInfo.realWidth * ratio);
+ }
+ if (!height) {
+ ratio = width / me.scaleInfo.realWidth;
+ height = Math.round(me.scaleInfo.realHeight * ratio);
+ }
+
+ newsize = { width: String(width) + 'px', height: String(height) + 'px' };
+ if (!m.hasCanvas()) {
+ $(me.base_canvas).children().remove();
+ }
+
+ // resize all the elements that are part of the map except the image itself (which is not visible)
+ // but including the div wrapper
+ els = $(me.wrapper).find('.mapster_el');
+ if (me.options.enableAutoResizeSupport !== true) {
+ els = els.add(me.wrapper);
+ }
+
+ if (duration) {
+ promises = [];
+ me.currentAction = 'resizing';
+ els.filter(':visible').each(function (_, e) {
+ p = u.defer();
+ promises.push(p);
+
+ $(e).animate(newsize, {
+ duration: duration,
+ complete: p.resolve,
+ easing: 'linear'
+ });
+ });
+ els.filter(':hidden').css(newsize);
+
+ p = u.defer();
+ promises.push(p);
+
+ // though resizeMapData is not async, it needs to be finished just the same as the animations,
+ // so add it to the "to do" list.
+
+ u.when.all(promises).then(finishResize);
+ resizeMapData();
+ p.resolve();
+ } else {
+ els.css(newsize);
+ resizeMapData();
+ finishResize();
+ }
+ };
+
+ m.MapData.prototype.autoResize = function (duration, callback) {
+ var me = this;
+ me.resize($(me.wrapper).width(), null, duration, callback);
+ };
+
+ m.MapData.prototype.configureAutoResize = function () {
+ var me = this,
+ ns = me.instanceEventNamespace();
+
+ function resizeMap() {
+ // Evaluate this at runtime to allow for set_options
+ // to change behavior as set_options intentionally
+ // does not change any rendering behavior when invoked.
+ // To improve perf, in next major release this should
+ // be refactored to add/remove listeners when autoResize
+ // changes rather than always having listeners attached
+ // and conditionally resizing
+ if (me.options.autoResize !== true) {
+ return;
+ }
+
+ me.autoResize(me.options.autoResizeDuration, me.options.onAutoResize);
+ }
+
+ function debounce() {
+ if (me.autoResizeTimer) {
+ clearTimeout(me.autoResizeTimer);
+ }
+ me.autoResizeTimer = setTimeout(resizeMap, me.options.autoResizeDelay);
+ }
+
+ $(me.image).on('load' + ns, resizeMap); //Detect late image loads in IE11
+ $(window).on('focus' + ns, resizeMap);
+ $(window).on('resize' + ns, debounce);
+ $(window).on('readystatechange' + ns, resizeMap);
+ $(window.document).on('fullscreenchange' + ns, resizeMap);
+ resizeMap();
+ };
+
+ m.MapArea = u.subclass(m.MapArea, function () {
+ //change the area tag data if needed
+ this.base.init();
+ if (this.owner.scaleInfo.scale) {
+ this.resize();
+ }
+ });
+
+ p.coords = function (percent, coordOffset) {
+ var j,
+ newCoords = [],
+ pct = percent || this.owner.scaleInfo.scalePct,
+ offset = coordOffset || 0;
+
+ if (pct === 1 && coordOffset === 0) {
+ return this.originalCoords;
+ }
+
+ for (j = 0; j < this.length; j++) {
+ //amount = j % 2 === 0 ? xPct : yPct;
+ newCoords.push(Math.round(this.originalCoords[j] * pct) + offset);
+ }
+ return newCoords;
+ };
+ p.resize = function () {
+ this.area.coords = this.coords().join(',');
+ };
+
+ p.reset = function () {
+ this.area.coords = this.coords(1).join(',');
+ };
+
+ m.impl.resize = function (width, height, duration, callback) {
+ var x = new m.Method(
+ this,
+ function () {
+ var me = this,
+ noDimensions = !width && !height,
+ isAutoResize =
+ me.options.enableAutoResizeSupport &&
+ me.options.autoResize &&
+ noDimensions;
+
+ if (isAutoResize) {
+ me.autoResize(duration, callback);
+ return;
+ }
+
+ if (noDimensions) {
+ return false;
+ }
+
+ me.resize(width, height, duration, callback);
+ },
+ null,
+ {
+ name: 'resize',
+ args: arguments
+ }
+ ).go();
+ return x;
+ };
+
+ /*
+ m.impl.zoom = function (key, opts) {
+ var options = opts || {};
+
+ function zoom(areaData) {
+ // this will be MapData object returned by Method
+
+ var scroll, corners, height, width, ratio,
+ diffX, diffY, ratioX, ratioY, offsetX, offsetY, newWidth, newHeight, scrollLeft, scrollTop,
+ padding = options.padding || 0,
+ scrollBarSize = areaData ? 20 : 0,
+ me = this,
+ zoomOut = false;
+
+ if (areaData) {
+ // save original state on first zoom operation
+ if (!me.zoomed) {
+ me.zoomed = true;
+ me.preZoomWidth = me.scaleInfo.width;
+ me.preZoomHeight = me.scaleInfo.height;
+ me.zoomedArea = areaData;
+ if (options.scroll) {
+ me.wrapper.css({ overflow: 'auto' });
+ }
+ }
+ corners = $.mapster.utils.areaCorners(areaData.coords(1, 0));
+ width = me.wrapper.innerWidth() - scrollBarSize - padding * 2;
+ height = me.wrapper.innerHeight() - scrollBarSize - padding * 2;
+ diffX = corners.maxX - corners.minX;
+ diffY = corners.maxY - corners.minY;
+ ratioX = width / diffX;
+ ratioY = height / diffY;
+ ratio = Math.min(ratioX, ratioY);
+ offsetX = (width - diffX * ratio) / 2;
+ offsetY = (height - diffY * ratio) / 2;
+
+ newWidth = me.scaleInfo.realWidth * ratio;
+ newHeight = me.scaleInfo.realHeight * ratio;
+ scrollLeft = (corners.minX) * ratio - padding - offsetX;
+ scrollTop = (corners.minY) * ratio - padding - offsetY;
+ } else {
+ if (!me.zoomed) {
+ return;
+ }
+ zoomOut = true;
+ newWidth = me.preZoomWidth;
+ newHeight = me.preZoomHeight;
+ scrollLeft = null;
+ scrollTop = null;
+ }
+
+ this.resize({
+ width: newWidth,
+ height: newHeight,
+ duration: options.duration,
+ scroll: scroll,
+ scrollLeft: scrollLeft,
+ scrollTop: scrollTop,
+ // closure so we can be sure values are correct
+ callback: (function () {
+ var isZoomOut = zoomOut,
+ scroll = options.scroll,
+ areaD = areaData;
+ return function () {
+ if (isZoomOut) {
+ me.preZoomWidth = null;
+ me.preZoomHeight = null;
+ me.zoomed = false;
+ me.zoomedArea = false;
+ if (scroll) {
+ me.wrapper.css({ overflow: 'inherit' });
+ }
+ } else {
+ // just to be sure it wasn't canceled & restarted
+ me.zoomedArea = areaD;
+ }
+ };
+ } ())
+ });
+ }
+ return (new m.Method(this,
+ function (opts) {
+ zoom.call(this);
+ },
+ function () {
+ zoom.call(this.owner, this);
+ },
+ {
+ name: 'zoom',
+ args: arguments,
+ first: true,
+ key: key
+ }
+ )).go();
+ };
+ */
+})(jQuery);
+
+/*
+ tooltip.js
+ Tooltip functionality
+ Requires areacorners.js
+*/
+
+(function ($) {
+ 'use strict';
+
+ var m = $.mapster,
+ u = m.utils;
+
+ $.extend(m.defaults, {
+ toolTipContainer:
+ '',
+ showToolTip: false,
+ toolTip: null,
+ toolTipFade: true,
+ toolTipClose: ['area-mouseout', 'image-mouseout', 'generic-mouseout'],
+ onShowToolTip: null,
+ onHideToolTip: null
+ });
+
+ $.extend(m.area_defaults, {
+ toolTip: null,
+ toolTipClose: null
+ });
+
+ /**
+ * Show a tooltip positioned near this area.
+ *
+ * @param {string|jquery} html A string of html or a jQuery object containing the tooltip content.
+ * @param {string|jquery} [template] The html template in which to wrap the content
+ * @param {string|object} [css] CSS to apply to the outermost element of the tooltip
+ * @return {jquery} The tooltip that was created
+ */
+
+ function createToolTip(html, template, css) {
+ var tooltip;
+
+ // wrap the template in a jQuery object, or clone the template if it's already one.
+ // This assumes that anything other than a string is a jQuery object; if it's not jQuery will
+ // probably throw an error.
+
+ if (template) {
+ tooltip =
+ typeof template === 'string' ? $(template) : $(template).clone();
+
+ tooltip.append(html);
+ } else {
+ tooltip = $(html);
+ }
+
+ // always set display to block, or the positioning css won't work if the end user happened to
+ // use a non-block type element.
+
+ tooltip
+ .css(
+ $.extend(css || {}, {
+ display: 'block',
+ position: 'absolute'
+ })
+ )
+ .hide();
+
+ $('body').append(tooltip);
+
+ // we must actually add the tooltip to the DOM and "show" it in order to figure out how much space it
+ // consumes, and then reposition it with that knowledge.
+ // We also cache the actual opacity setting to restore finally.
+
+ tooltip.attr('data-opacity', tooltip.css('opacity')).css('opacity', 0);
+
+ // doesn't really show it because opacity=0
+
+ return tooltip.show();
+ }
+
+ /**
+ * Show a tooltip positioned near this area.
+ *
+ * @param {jquery} tooltip The tooltip
+ * @param {object} [options] options for displaying the tooltip.
+ * @config {int} [left] The 0-based absolute x position for the tooltip
+ * @config {int} [top] The 0-based absolute y position for the tooltip
+ * @config {string|object} [css] CSS to apply to the outermost element of the tooltip
+ * @config {bool} [fadeDuration] When non-zero, the duration in milliseconds of a fade-in effect for the tooltip.
+ */
+
+ function showToolTipImpl(tooltip, options) {
+ var tooltipCss = {
+ left: options.left + 'px',
+ top: options.top + 'px'
+ },
+ actalOpacity = tooltip.attr('data-opacity') || 0,
+ zindex = tooltip.css('z-index');
+
+ if (parseInt(zindex, 10) === 0 || zindex === 'auto') {
+ tooltipCss['z-index'] = 9999;
+ }
+
+ tooltip.css(tooltipCss).addClass('mapster_tooltip');
+
+ if (options.fadeDuration && options.fadeDuration > 0) {
+ u.fader(tooltip[0], 0, actalOpacity, options.fadeDuration);
+ } else {
+ u.setOpacity(tooltip[0], actalOpacity);
+ }
+ }
+
+ /**
+ * Hide and remove active tooltips
+ *
+ * @param {MapData} this The mapdata object to which the tooltips belong
+ */
+
+ m.MapData.prototype.clearToolTip = function () {
+ if (this.activeToolTip) {
+ this.activeToolTip.stop().remove();
+ this.activeToolTip = null;
+ this.activeToolTipID = null;
+ u.ifFunction(this.options.onHideToolTip, this);
+ }
+ };
+
+ /**
+ * Configure the binding between a named tooltip closing option, and a mouse event.
+ *
+ * If a callback is passed, it will be called when the activating event occurs, and the tooltip will
+ * only closed if it returns true.
+ *
+ * @param {MapData} [this] The MapData object to which this tooltip belongs.
+ * @param {String} option The name of the tooltip closing option
+ * @param {String} event UI event to bind to this option
+ * @param {Element} target The DOM element that is the target of the event
+ * @param {Function} [beforeClose] Callback when the tooltip is closed
+ * @param {Function} [onClose] Callback when the tooltip is closed
+ */
+ function bindToolTipClose(
+ options,
+ bindOption,
+ event,
+ target,
+ beforeClose,
+ onClose
+ ) {
+ var tooltip_ns = '.mapster.tooltip',
+ event_name = event + tooltip_ns;
+
+ if ($.inArray(bindOption, options) >= 0) {
+ target.off(event_name).on(event_name, function (e) {
+ if (!beforeClose || beforeClose.call(this, e)) {
+ target.off(tooltip_ns);
+ if (onClose) {
+ onClose.call(this);
+ }
+ }
+ });
+
+ return {
+ object: target,
+ event: event_name
+ };
+ }
+ }
+
+ /**
+ * Show a tooltip.
+ *
+ * @param {string|jquery} [tooltip] A string of html or a jQuery object containing the tooltip content.
+ *
+ * @param {string|jquery} [target] The target of the tooltip, to be used to determine positioning. If null,
+ * absolute position values must be passed with left and top.
+ *
+ * @param {string|jquery} [image] If target is an [area] the image that owns it
+ *
+ * @param {string|jquery} [container] An element within which the tooltip must be bounded
+ *
+ * @param {object|string|jQuery} [options] options to apply when creating this tooltip
+ * @config {int} [offsetx] the horizontal amount to offset the tooltip
+ * @config {int} [offsety] the vertical amount to offset the tooltip
+ * @config {string|object} [css] CSS to apply to the outermost element of the tooltip
+ * @config {bool} [fadeDuration] When non-zero, the duration in milliseconds of a fade-in effect for the tooltip.
+ * @config {int} [left] The 0-based absolute x position for the tooltip (only used if target is not specified)
+ * @config {int} [top] The 0-based absolute y position for the tooltip (only used if target it not specified)
+ */
+
+ function showToolTip(tooltip, target, image, container, options) {
+ var corners,
+ ttopts = {};
+
+ options = options || {};
+
+ if (target) {
+ corners = u.areaCorners(
+ target,
+ image,
+ container,
+ tooltip.outerWidth(true),
+ tooltip.outerHeight(true)
+ );
+
+ // Try to upper-left align it first, if that doesn't work, change the parameters
+
+ ttopts.left = corners[0];
+ ttopts.top = corners[1];
+ } else {
+ ttopts.left = options.left;
+ ttopts.top = options.top;
+ }
+
+ ttopts.left += options.offsetx || 0;
+ ttopts.top += options.offsety || 0;
+
+ ttopts.css = options.css;
+ ttopts.fadeDuration = options.fadeDuration;
+
+ showToolTipImpl(tooltip, ttopts);
+
+ return tooltip;
+ }
+
+ /**
+ * Show a tooltip positioned near this area.
+ *
+ * @param {string|jquery|function} [content] A string of html, jQuery object or function that returns same containing the tooltip content.
+
+ * @param {object} [options] options to apply when creating this tooltip
+ * @config {string|jquery} [container] An element within which the tooltip must be bounded
+ * @config {bool} [template] a template to use instead of the default. If this property exists and is null,
+ * then no template will be used.
+ * @config {string} [closeEvents] A string with one or more comma-separated values that determine when the tooltip
+ * closes: 'area-click','tooltip-click','image-mouseout','image-click' are valid values
+ * then no template will be used.
+ * @config {int} [offsetx] the horizontal amount to offset the tooltip
+ * @config {int} [offsety] the vertical amount to offset the tooltip
+ * @config {string|object} [css] CSS to apply to the outermost element of the tooltip
+ * @config {bool} [fadeDuration] When non-zero, the duration in milliseconds of a fade-in effect for the tooltip.
+ */
+ m.AreaData.prototype.showToolTip = function (content, options) {
+ var tooltip,
+ closeOpts,
+ target,
+ tipClosed,
+ template,
+ ttopts = {},
+ ad = this,
+ md = ad.owner,
+ areaOpts = ad.effectiveOptions();
+
+ // copy the options object so we can update it
+ options = options ? $.extend({}, options) : {};
+
+ content = content || areaOpts.toolTip;
+ closeOpts =
+ options.closeEvents ||
+ areaOpts.toolTipClose ||
+ md.options.toolTipClose ||
+ 'tooltip-click';
+
+ template =
+ typeof options.template !== 'undefined'
+ ? options.template
+ : md.options.toolTipContainer;
+
+ options.closeEvents =
+ typeof closeOpts === 'string'
+ ? (closeOpts = u.split(closeOpts))
+ : closeOpts;
+
+ options.fadeDuration =
+ options.fadeDuration ||
+ (md.options.toolTipFade
+ ? md.options.fadeDuration || areaOpts.fadeDuration
+ : 0);
+
+ target = ad.area
+ ? ad.area
+ : $.map(ad.areas(), function (e) {
+ return e.area;
+ });
+
+ if (md.activeToolTipID === ad.areaId) {
+ return;
+ }
+
+ md.clearToolTip();
+
+ var effectiveContent = u.isFunction(content)
+ ? content({ key: this.key, target: target })
+ : content;
+
+ if (!effectiveContent) {
+ return;
+ }
+
+ md.activeToolTip = tooltip = createToolTip(
+ effectiveContent,
+ template,
+ options.css
+ );
+
+ md.activeToolTipID = ad.areaId;
+
+ tipClosed = function () {
+ md.clearToolTip();
+ };
+
+ bindToolTipClose(
+ closeOpts,
+ 'area-click',
+ 'click',
+ $(md.map),
+ null,
+ tipClosed
+ );
+ bindToolTipClose(
+ closeOpts,
+ 'tooltip-click',
+ 'click',
+ tooltip,
+ null,
+ tipClosed
+ );
+ bindToolTipClose(
+ closeOpts,
+ 'image-mouseout',
+ 'mouseout',
+ $(md.image),
+ function (e) {
+ return (
+ e.relatedTarget &&
+ e.relatedTarget.nodeName !== 'AREA' &&
+ e.relatedTarget !== ad.area
+ );
+ },
+ tipClosed
+ );
+ bindToolTipClose(
+ closeOpts,
+ 'image-click',
+ 'click',
+ $(md.image),
+ null,
+ tipClosed
+ );
+
+ showToolTip(tooltip, target, md.image, options.container, options);
+
+ u.ifFunction(md.options.onShowToolTip, ad.area, {
+ toolTip: tooltip,
+ options: ttopts,
+ areaOptions: areaOpts,
+ key: ad.key,
+ selected: ad.isSelected()
+ });
+
+ return tooltip;
+ };
+
+ /**
+ * Parse an object that could be a string, a jquery object, or an object with a "contents" property
+ * containing html or a jQuery object.
+ *
+ * @param {object|string|jQuery} options The parameter to parse
+ * @return {string|jquery} A string or jquery object
+ */
+ function getHtmlFromOptions(options) {
+ // see if any html was passed as either the options object itself, or the content property
+
+ return options
+ ? typeof options === 'string' || options.jquery || u.isFunction(options)
+ ? options
+ : options.content
+ : null;
+ }
+
+ function getOptionsFromOptions(options) {
+ return options
+ ? typeof options == 'string' || options.jquery || u.isFunction(options)
+ ? { content: options }
+ : options
+ : {};
+ }
+
+ /**
+ * Activate or remove a tooltip for an area. When this method is called on an area, the
+ * key parameter doesn't apply and "options" is the first parameter.
+ *
+ * When called with no parameters, or "key" is a falsy value, any active tooltip is cleared.
+ *
+ * When only a key is provided, the default tooltip for the area is used.
+ *
+ * When html is provided, this is used instead of the default tooltip.
+ *
+ * When "noTemplate" is true, the default tooltip template will not be used either, meaning only
+ * the actual html passed will be used.
+ *
+ * @param {string|AreaElement|HTMLElement} key The area key or element for which to activate a tooltip, or a DOM element/selector.
+ *
+ * @param {object|string|jquery} [options] options to apply when creating this tooltip - OR -
+ * The markup, or a jquery object, containing the data for the tooltip
+ * @config {string|jQuery|function} [content] the inner content of the tooltip; the tooltip text, HTML or function that returns same
+ * @config {Element|jQuery} [container] the inner content of the tooltip; the tooltip text or HTML
+ * @config {bool} [template] a template to use instead of the default. If this property exists and is null,
+ * then no template will be used.
+ * @config {string} [closeEvents] A string with one or more comma-separated values that determine when the tooltip
+ * closes: 'area-click','tooltip-click','image-mouseout','image-click','generic-click','generic-mouseout' are valid values
+ * @config {int} [offsetx] the horizontal amount to offset the tooltip.
+ * @config {int} [offsety] the vertical amount to offset the tooltip.
+ * @config {string|object} [css] CSS to apply to the outermost element of the tooltip
+ * @config {bool} [fadeDuration] When non-zero, the duration in milliseconds of a fade-in effect for the tooltip.
+ * @return {jQuery} The jQuery object
+ */
+
+ m.impl.tooltip = function (key, options) {
+ return new m.Method(
+ this,
+ function mapData() {
+ var tooltip,
+ target,
+ defaultTarget,
+ closeOpts,
+ tipClosed,
+ md = this;
+ if (!key) {
+ md.clearToolTip();
+ } else {
+ target = $(key);
+ defaultTarget = target && target.length > 0 ? target[0] : null;
+ if (md.activeToolTipID === defaultTarget) {
+ return;
+ }
+
+ md.clearToolTip();
+ if (!defaultTarget) {
+ return;
+ }
+
+ var content = getHtmlFromOptions(options),
+ effectiveContent = u.isFunction(content)
+ ? content({ key: this.key, target: target })
+ : content;
+
+ if (!effectiveContent) {
+ return;
+ }
+
+ options = getOptionsFromOptions(options);
+
+ closeOpts =
+ options.closeEvents || md.options.toolTipClose || 'tooltip-click';
+
+ options.closeEvents =
+ typeof closeOpts === 'string'
+ ? (closeOpts = u.split(closeOpts))
+ : closeOpts;
+
+ options.fadeDuration =
+ options.fadeDuration ||
+ (md.options.toolTipFade ? md.options.fadeDuration : 0);
+
+ tipClosed = function () {
+ md.clearToolTip();
+ };
+
+ md.activeToolTip = tooltip = createToolTip(
+ effectiveContent,
+ options.template || md.options.toolTipContainer,
+ options.css
+ );
+ md.activeToolTipID = defaultTarget;
+
+ bindToolTipClose(
+ closeOpts,
+ 'tooltip-click',
+ 'click',
+ tooltip,
+ null,
+ tipClosed
+ );
+
+ bindToolTipClose(
+ closeOpts,
+ 'generic-mouseout',
+ 'mouseout',
+ target,
+ null,
+ tipClosed
+ );
+
+ bindToolTipClose(
+ closeOpts,
+ 'generic-click',
+ 'click',
+ target,
+ null,
+ tipClosed
+ );
+
+ md.activeToolTip = tooltip = showToolTip(
+ tooltip,
+ target,
+ md.image,
+ options.container,
+ options
+ );
+ }
+ },
+ function areaData() {
+ if ($.isPlainObject(key) && !options) {
+ options = key;
+ }
+
+ this.showToolTip(
+ getHtmlFromOptions(options),
+ getOptionsFromOptions(options)
+ );
+ },
+ {
+ name: 'tooltip',
+ args: arguments,
+ key: key
+ }
+ ).go();
+ };
+})(jQuery);
+
+};
+
+imagemapsterFactory(jQuery);
+export { jQuery, jQuery as $ };
+export default jQuery;
diff --git a/dist/jquery.imagemapster.zepto.js b/dist/jquery.imagemapster.zepto.js
index bc32749..8a03ac4 100644
--- a/dist/jquery.imagemapster.zepto.js
+++ b/dist/jquery.imagemapster.zepto.js
@@ -1,5 +1,5 @@
/*!
-* imagemapster - v1.6.0 - 2024-03-12
+* imagemapster - v1.6.0 - 2024-04-05
* https://github.com/jamietre/ImageMapster/
* Copyright (c) 2011 - 2024 James Treworgy
* License: MIT
@@ -31,7 +31,7 @@
factory(root.jQuery || root.Zepto);
}
}(typeof self !== 'undefined' ? self : this, function (jQuery) {
- /*
+/*
zepto.js
Monkey patch for Zepto to add some methods ImageMapster needs
*/
@@ -725,8 +725,8 @@
return d && d.g_vml_
? false
: $('')[0].getContext
- ? true
- : false;
+ ? true
+ : false;
}
/**
@@ -2632,8 +2632,8 @@
return !ar
? ''
: ar.isPrimary
- ? ar.key
- : this.getPrimaryKeysForMapAreas(ar.areas()).join(',');
+ ? ar.key
+ : this.getPrimaryKeysForMapAreas(ar.areas()).join(',');
},
/**
@@ -2974,8 +2974,8 @@
sel = m.hasVml()
? 'area'
: default_group
- ? 'area[coords]'
- : 'area[' + opts.mapKey + ']';
+ ? 'area[coords]'
+ : 'area[' + opts.mapKey + ']';
areas = $(me.map).find(sel).off('.mapster');
@@ -3380,22 +3380,22 @@
return u.isBool(this.selected)
? this.selected
: u.isBool(this.owner.area_options.selected)
- ? this.owner.area_options.selected
- : false;
+ ? this.owner.area_options.selected
+ : false;
},
isSelectable: function () {
return u.isBool(this.effectiveOptions().staticState)
? false
: u.isBool(this.owner.options.staticState)
- ? false
- : u.boolOrDefault(this.effectiveOptions().isSelectable, true);
+ ? false
+ : u.boolOrDefault(this.effectiveOptions().isSelectable, true);
},
isDeselectable: function () {
return u.isBool(this.effectiveOptions().staticState)
? false
: u.isBool(this.owner.options.staticState)
- ? false
- : u.boolOrDefault(this.effectiveOptions().isDeselectable, true);
+ ? false
+ : u.boolOrDefault(this.effectiveOptions().isDeselectable, true);
},
isNotRendered: function () {
return isNoHref(this.area) || this.effectiveOptions().isMask;
@@ -4629,4 +4629,4 @@
};
})(jQuery);
-}));
\ No newline at end of file
+}));
diff --git a/dist/jquery.imagemapster.zepto.min.js b/dist/jquery.imagemapster.zepto.min.js
index d4a489f..670eccf 100644
--- a/dist/jquery.imagemapster.zepto.min.js
+++ b/dist/jquery.imagemapster.zepto.min.js
@@ -1,5 +1,5 @@
/*!
-* imagemapster - v1.6.0 - 2024-03-12
+* imagemapster - v1.6.0 - 2024-04-05
* https://github.com/jamietre/ImageMapster/
* Copyright (c) 2011 - 2024 James Treworgy
* License: MIT
diff --git a/dist/jquery.imagemapster.zepto.min.js.map b/dist/jquery.imagemapster.zepto.min.js.map
index 8245d31..763884b 100644
--- a/dist/jquery.imagemapster.zepto.min.js.map
+++ b/dist/jquery.imagemapster.zepto.min.js.map
@@ -1 +1 @@
-{"version":3,"file":"jquery.imagemapster.zepto.min.js","sources":["jquery.imagemapster.zepto.js"],"names":["root","factory","define","amd","module","exports","jQuery","undefined","window","require","Zepto","self","this","$","fn","stop","each","_","name","funcName","toLowerCase","event","special","setupListener","supportsPassive","opts","Object","defineProperty","get","addEventListener","removeEventListener","e","ns","type","listener","includes","passive","touchstart","setup","call","touchend","mapster_version","m","mapster","method","impl","utils","isFunction","apply","Array","prototype","slice","arguments","error","bind","version","render_defaults","isSelectable","isDeselectable","fade","fadeDuration","fill","fillColor","fillColorMask","fillOpacity","highlight","stroke","strokeColor","strokeOpacity","strokeWidth","includeKeys","altImage","altImageId","altImages","defaults","clickNavigate","navigateMode","wrapClass","wrapCss","onGetList","sortList","listenToList","mapKey","mapValue","singleSelect","listKey","listSelectedAttribute","listSelectedClass","onClick","onMouseover","onMouseout","mouseoutDelay","onStateChange","boundList","onConfigured","configTimeout","noHrefIsMask","scaleMap","enableAutoResizeSupport","autoResize","autoResizeDelay","autoResizeDuration","onAutoResize","safeLoad","areas","shared_defaults","render_highlight","render_select","staticState","selected","area_defaults","isMask","canvas_style","position","left","top","padding","border","hasCanvas","map_cache","hooks","addHook","callback","push","callHooks","context","when","all","deferredArray","Promise","defer","promise","resolve","reject","then","catch","subclass","BaseClass","constr","Subclass","me","args","base","init","constructor","asArray","obj","split","text","cb","el","arr","i","length","trim","splice","updateProps","_target","_template","target","template","isEmptyObject","onlyProps","prop","src","p","inArray","isPlainObject","extend","isElement","o","HTMLElement","nodeType","nodeName","indexOf","indexOfProp","val","result","boolOrDefault","def","isBool","isUndef","ifFunction","that","size","image","raw","u","width","naturalWidth","imgWidth","height","naturalHeight","imgHeight","complete","setOpacity","opacity","style","css","fader","fade_func","op","endOp","duration","index","cbIntervals","elements","lastKey","setTimeout","getShape","areaEl","shape","hasAttribute","attrName","attr","getBoundList","key_list","key","list","is","add","getMapDataIndex","img","id","tagName","parent","getMapData","queueCommand","map_data","command","currentAction","commands","unload","off","ap","capProp","substr","toUpperCase","jqwidth","Method","func_map","func_area","output","input","first","allowAsync","go","data","ar","area_list","len","getData","addMap","removeMap","hasVml","a","appendTo","b","html","firstChild","has","behavior","adj","remove","namespaces","document","d","g_vml_","getContext","merge_areas","map_areas","options","getDataForKey","merge_options","temp_opts","area_options","md","getSelected","isSelected","defaultReturn","highlightId","ensureNoHighlight","keys","keyList","addUniqueKeys","getKeysForGroup","getDataForArea","join","ad","concat","select","set","deselect","lastMap","addArea","finishSetForMap","setSelection","toggle","removeSelectionFinish","filter","toString","unbind","preserveState","clearEvents","clearMapData","rebind","configureOptions","bindImages","buildDataset","get_options","effective","eff","effectiveOptions","set_options","graphics","snapshot","base_canvas","createVisibleCanvas","before","state","map","usemap","getAttribute","MapData","initialize","useCanvas","shapes","value","v","createStyleSheet","addRule","test","eval","canvasMethods","vmlMethods","addShapeGroupImpl","areaData","nohref","addShape","hex_to_decimal","hex","Math","max","min","parseInt","css3color","color","noop","Graphics","active","canvas","masks","begin","elementName","c","mapArea","mapData","createCanvasFor","addClass","addShapeGroup","mode","effectiveRenderOptions","areaId","overlay_canvas","render","find","not","renderShape","offset","coords","rect","moveTo","lineTo","arc","PI","addAltImage","beginPath","closePath","clip","globalAlpha","altImageOpacity","drawImage","owner","scaleInfo","maskCanvas","maskContext","hasMasks","shapeCanvas","shapeContext","clearRect","save","lineWidth","fillStyle","restore","s","images","strokeStyle","globalCompositeOperation","clearHighlight","refreshSelections","canvas_temp","hide","redrawSelections","show","cssclass","el_name","el_class","t_fill","append","w","h","children","removeSelections","area_id","MapImages","clear","status","_add","ids","on","imageLoaded","imageLoadError","triesLeft","check","isLoaded","imgTimeout","deferred","resolver","clearTimeout","queueMouseEvent","delay","area","activeAreaEvent","completeAction","currentAreaId","shouldNavigateTo","href","mousedown","blur","preventDefault","imgCssText","cssText","mapAreas","_xref","_tooltip_events","autoResizeTimer","mouseover","arData","getAllDataForArea","isNotRendered","clearEffects","showToolTip","toolTip","mouseout","relatedTarget","click","list_target","newSelectionState","canChangeState","cbResult","areaOpts","navigateTo","open","location","getNavDetails","defaultHref","useEl","elHref","hrefTarget","clickArea","listTarget","navDetails","toolTipClose","activeToolTip","clearToolTip","mi","e2","isActive","resizing","zoomed","zoomedArea","wrapId","instanceEventNamespace","_idFromKey","hasOwnProperty","atMost","isPrimary","getPrimaryKeysForMapAreas","changeState","setHighlightId","clearSelections","setAreaOptions","drawSelections","key_arr","drawSelection","isSelectedOrStatic","setBoundListProperties","removeClass","clearBoundListProperties","refreshBoundList","setBoundList","sort_func","sorted_list","sort","wrap","scale","parentId","substring","className","wrapper","imgCopy","display","processCommandQueue","configureAutoResize","$img","sel","j","$area","curKey","mapAreaId","group_value","dataItem","default_group","addAreaData","AreaData","String","configure","areaDataXref","MapArea","areasXref","cur","_clearCanvases","reset","g","isNoHref","staticStateOverridden","optsCache","constuctor","newOptsCache","hasOptions","changeOptions","isDrawn","selectedHasChanged","updateSelected","partial","prevSelected","allOpts","state_type","originalCoords","parseFloat","areaCorners","container","pos","found","minX","minY","maxX","maxY","bestMinX","bestMaxX","bestMinY","bestMaxY","curX","curY","nest","rootx","rooty","iCoords","radius","angle","offsetx","offsety","body","cos","sin","getScaleInfo","actual","pct","scalePct","realWidth","realHeight","ratio","imageRaw","vis","resize","promises","newsize","sizeCanvas","finishResize","tempOptions","resizeMapData","round","els","animate","easing","resizeMap","percent","coordOffset","newCoords","noDimensions","isAutoResize","createToolTip","tooltip","clone","bindToolTipClose","bindOption","beforeClose","onClose","tooltip_ns","event_name","ttopts","corners","outerWidth","outerHeight","tooltipCss","actalOpacity","zindex","getHtmlFromOptions","jquery","content","getOptionsFromOptions","toolTipContainer","toolTipFade","onShowToolTip","onHideToolTip","activeToolTipID","closeOpts","closeEvents","effectiveContent","tipClosed","areaOptions","defaultTarget"],"mappings":";;;;;;AAMA,CAAC,SAAUA,EAAMC,GACO,YAAlB,OAAOC,QAAyBA,OAAOC,IAEzCD,OAAO,CAAC,UAAWD,CAAO,EACC,UAAlB,OAAOG,QAAuBA,OAAOC,QAE9CD,OAAOC,QAAU,SAAUL,EAAMM,GAc/B,OAbgBC,KAAAA,IAAXD,IAMDA,EADqB,aAAlB,OAAOE,OACDC,QAAQ,QAAQ,EAGhBA,QAAQ,QAAQ,EAAET,CAAI,GAGnCC,EAAQK,CAAM,EACPA,CACT,EAGEL,EAAQD,EAAKM,QAAUN,EAAKU,KAAK,CAEvC,EAAkB,aAAhB,OAAOC,KAAuBA,KAAOC,KAAM,SAAUN,QAMvD,CAAA,SAAWO,GACT,aAEeA,EAAEC,GAAGC,OAElBF,EAAEC,GAAGC,KAAO,WACV,OAAOH,IACT,GAGFC,EAAEG,KAAK,CAAC,SAAU,SAAU,SAAUC,EAAGC,GACvC,IAAIC,EAAW,QAAUD,EACZL,EAAEC,GAAGK,KAEhBN,EAAEC,GAAGK,GAAY,WACf,OAAOP,KAAKM,EAAKE,YAAY,GAAG,CAClC,EAEJ,CAAC,CACF,EAAEd,MAAM,EAOT,CAAA,SAAWO,GACT,aAwDA,GALSA,EAAEQ,OAASR,EAAEQ,MAAMC,QAKC,CApD3B,IAwBMC,EAxBFC,EAAkB,CAAA,EACtB,IACE,IAAIC,EAAOC,OAAOC,eAAe,GAAI,UAAW,CAC9CC,IAAK,WAEH,OADAJ,EAAkB,CAAA,CAEpB,CACF,CAAC,EACDhB,OAAOqB,iBAAiB,sBAAuB,aAAgBJ,CAAI,EACnEjB,OAAOsB,oBAAoB,sBAAuB,aAAgBL,CAAI,CAGxE,CAFE,MAAOM,IAILP,IAUED,EAAgB,SAAUS,EAAIC,EAAMC,GACtC,GAAIF,CAAAA,EAAGG,SAAS,SAAS,GAAKH,CAAAA,EAAGG,SAAS,kBAAkB,EAG1D,MAAO,CAAA,EAFPvB,KAAKiB,iBAAiBI,EAAMC,EAAU,CAAEE,QAAS,CAAA,CAAK,CAAC,CAI3D,EAGAvB,EAAEQ,MAAMC,QAAQe,WAAa,CAC3BC,MAAO,SAAUrB,EAAGe,EAAIE,GACtB,OAAOX,EAAcgB,KAAK3B,KAAMoB,EAAI,aAAcE,CAAQ,CAC5D,CACF,EACArB,EAAEQ,MAAMC,QAAQkB,SAAW,CACzBF,MAAO,SAAUrB,EAAGe,EAAIE,GACtB,OAAOX,EAAcgB,KAAK3B,KAAMoB,EAAI,WAAYE,CAAQ,CAC1D,CACF,EAYJ,CACD,EAAE5B,MAAM,EAOT,CAAA,SAAWO,GACT,aAEA,IAAI4B,gBAAkB,QAqblBC,GAlbJ7B,EAAEC,GAAG6B,QAAU,SAAUC,GACvB,IAAIF,EAAI7B,EAAE8B,QAAQE,KAClB,OAAIhC,EAAE8B,QAAQG,MAAMC,WAAWL,EAAEE,EAAO,EAC/BF,EAAEE,GAAQI,MAAMpC,KAAMqC,MAAMC,UAAUC,MAAMZ,KAAKa,UAAW,CAAC,CAAC,EAC1C,UAAlB,OAAOR,GAAwBA,EAGxC/B,KAAAA,EAAEwC,MAAM,UAAYT,EAAS,mCAAmC,EAFzDF,EAAEY,KAAKN,MAAMpC,KAAMwC,SAAS,CAIvC,EAEAvC,EAAE8B,QAAU,CACVY,QAASd,gBACTe,gBAAiB,CACfC,aAAc,CAAA,EACdC,eAAgB,CAAA,EAChBC,KAAM,CAAA,EACNC,aAAc,IACdC,KAAM,CAAA,EACNC,UAAW,SACXC,cAAe,SACfC,YAAa,GACbC,UAAW,CAAA,EACXC,OAAQ,CAAA,EACRC,YAAa,SACbC,cAAe,EACfC,YAAa,EACbC,YAAa,GACbC,SAAU,KACVC,WAAY,KACZC,UAAW,EACb,EACAC,SAAU,CACRC,cAAe,CAAA,EACfC,aAAc,WACdC,UAAW,KACXC,QAAS,KACTC,UAAW,KACXC,SAAU,CAAA,EACVC,aAAc,CAAA,EACdC,OAAQ,GACRC,SAAU,GACVC,aAAc,CAAA,EACdC,QAAS,QACTC,sBAAuB,WACvBC,kBAAmB,KACnBC,QAAS,KACTC,YAAa,KACbC,WAAY,KACZC,cAAe,EACfC,cAAe,KACfC,UAAW,KACXC,aAAc,KACdC,cAAe,IACfC,aAAc,CAAA,EACdC,SAAU,CAAA,EACVC,wBAAyB,CAAA,EACzBC,WAAY,CAAA,EACZC,gBAAiB,EACjBC,mBAAoB,EACpBC,aAAc,KACdC,SAAU,CAAA,EACVC,MAAO,EACT,EACAC,gBAAiB,CACfC,iBAAkB,CAAE/C,KAAM,CAAA,CAAK,EAC/BgD,cAAe,CAAEhD,KAAM,CAAA,CAAM,EAC7BiD,YAAa,KACbC,SAAU,IACZ,EACAC,cAAe,CACbxC,YAAa,GACbyC,OAAQ,CAAA,CACV,EACAC,aAAc,CACZC,SAAU,WACVC,KAAM,EACNC,IAAK,EACLC,QAAS,EACTC,OAAQ,CACV,EACAC,UAAW,KACXC,UAAW,GACXC,MAAO,GACPC,QAAS,SAAUvG,EAAMwG,GACvB9G,KAAK4G,MAAMtG,IAASN,KAAK4G,MAAMtG,IAAS,IAAIyG,KAAKD,CAAQ,CAC3D,EACAE,UAAW,SAAU1G,EAAM2G,GACzBhH,EAAEG,KAAKJ,KAAK4G,MAAMtG,IAAS,GAAI,SAAUD,EAAGc,GAC1CA,EAAEiB,MAAM6E,CAAO,CACjB,CAAC,CACH,EACA/E,MAAO,CACLgF,KAAM,CACJC,IAAK,SAAUC,GAGb,OAAOC,QAAQF,IAAIC,CAAa,CAClC,EACAE,MAAO,WAkBL,OAAO,IAbQ,WAGbtH,KAAKuH,QAAU,IAAIF,QACjB,SAAUG,EAASC,GACjBzH,KAAKwH,QAAUA,EACfxH,KAAKyH,OAASA,CAChB,EAAE/E,KAAK1C,IAAI,CACb,EAEAA,KAAK0H,KAAO1H,KAAKuH,QAAQG,KAAKhF,KAAK1C,KAAKuH,OAAO,EAC/CvH,KAAK2H,MAAQ3H,KAAKuH,QAAQI,MAAMjF,KAAK1C,KAAKuH,OAAO,CACnD,CAEF,CACF,EACAD,MAAO,WACL,OAAOtH,KAAKkH,KAAKI,MAAM,CACzB,EAIAM,SAAU,SAAUC,EAAWC,GACd,SAAXC,IACF,IAAIC,EAAKhI,KACPiI,EAAO5F,MAAMC,UAAUC,MAAMZ,KAAKa,UAAW,CAAC,EAChDwF,EAAGE,KAAOL,EAAUvF,UACpB0F,EAAGE,KAAKC,KAAO,WACbN,EAAUvF,UAAU8F,YAAYhG,MAAM4F,EAAIC,CAAI,CAChD,EACAH,EAAO1F,MAAM4F,EAAIC,CAAI,CACvB,CAGA,OAFAF,EAASzF,UAAY,IAAIuF,GACNO,YAAcL,CAEnC,EACAM,QAAS,SAAUC,GACjB,OAAOA,EAAIF,cAAgB/F,MAAQiG,EAAMtI,KAAKuI,MAAMD,CAAG,CACzD,EAEAC,MAAO,SAAUC,EAAMC,GAIrB,IAHA,IACEC,EACAC,EAAMH,EAAKD,MAAM,GAAG,EACjBK,EAAI,EAAGA,EAAID,EAAIE,OAAQD,CAAC,GAIhB,MADXF,EAAKC,EAAIC,GAAKD,EAAIC,GAAGE,KAAK,EAAI,IAE5BH,EAAII,OAAOH,EAAG,CAAC,EAEfD,EAAIC,GAAKH,EAAKA,EAAGC,CAAE,EAAIA,EAG3B,OAAOC,CACT,EAGAK,YAAa,SAAUC,EAASC,GAC9B,IACEC,EAASF,GAAW,GACpBG,EAAWnJ,EAAEoJ,cAAcF,CAAM,EAAID,EAAYD,EAGnDK,EAAY,GAsBZ,OArBArJ,EAAEG,KAAKgJ,EAAU,SAAUG,GACzBD,EAAUvC,KAAKwC,CAAI,CACrB,CAAC,EAGDtJ,EAAEG,KAAKiC,MAAMC,UAAUC,MAAMZ,KAAKa,UAAW,CAAC,EAAG,SAAUnC,EAAGmJ,GAC5DvJ,EAAEG,KAAKoJ,GAAO,GAAI,SAAUD,GAC1B,IACME,GADF,CAACH,GAA2C,GAA9BrJ,EAAEyJ,QAAQH,EAAMD,CAAS,KACrCG,EAAID,EAAID,GAERtJ,EAAE0J,cAAcF,CAAC,EAEnBN,EAAOI,GAAQtJ,EAAE2J,OAAOT,EAAOI,IAAS,GAAIE,CAAC,EACpCA,GAAKA,EAAErB,cAAgB/F,MAChC8G,EAAOI,GAAQE,EAAElH,MAAM,CAAC,EACF,KAAA,IAANkH,IAChBN,EAAOI,GAAQC,EAAID,IAGzB,CAAC,CACH,CAAC,EACMJ,CACT,EACAU,UAAW,SAAUC,GACnB,MAA8B,UAAvB,OAAOC,YACVD,aAAaC,YACbD,GACe,UAAb,OAAOA,GACQ,IAAfA,EAAEE,UACoB,UAAtB,OAAOF,EAAEG,QACjB,EAWAC,QAAS,SAAUvB,EAAKQ,GACtB,GAAI9G,MAAMC,UAAU4H,QAClB,OAAO7H,MAAMC,UAAU4H,QAAQvI,KAAKgH,EAAKQ,CAAM,EAE/C,IAAK,IAAIP,EAAI,EAAGA,EAAID,EAAIE,OAAQD,CAAC,GAC/B,GAAID,EAAIC,KAAOO,EACb,OAAOP,EAGX,MAAO,CAAC,CAEZ,EAIAuB,YAAa,SAAU7B,EAAKiB,EAAMa,GAChC,IAAIC,EAAS/B,EAAIF,cAAgB/F,MAAQ,CAAC,EAAI,KAO9C,OANApC,EAAEG,KAAKkI,EAAK,SAAUM,EAAGzH,GACvB,GAAIA,IAAMoI,EAAOpI,EAAEoI,GAAQpI,KAAOiJ,EAEhC,OADAC,EAASzB,EACF,CAAA,CAEX,CAAC,EACMyB,CACT,EAEAC,cAAe,SAAUhC,EAAKiC,GAC5B,OAAOvK,KAAKwK,OAAOlC,CAAG,EAAIA,EAAMiC,GAAO,CAAA,CACzC,EACAC,OAAQ,SAAUlC,GAChB,MAAsB,WAAf,OAAOA,CAChB,EACAmC,QAAS,SAAUnC,GACjB,OAAsB,KAAA,IAARA,CAChB,EACAnG,WAAY,SAAUmG,GACpB,MAAsB,YAAf,OAAOA,CAChB,EAGAoC,WAAY,SAAUpC,EAAKqC,EAAM1C,GAC3BjI,KAAKmC,WAAWmG,CAAG,GACrBA,EAAI3G,KAAKgJ,EAAM1C,CAAI,CAEvB,EACA2C,KAAM,SAAUC,EAAOC,GACrB,IAAIC,EAAI9K,EAAE8B,QAAQG,MAClB,MAAO,CACL8I,MAAOF,EACHD,EAAMG,OAASH,EAAMI,aACrBF,EAAEG,SAASL,EAAO,CAAA,CAAI,EAC1BM,OAAQL,EACJD,EAAMM,QAAUN,EAAMO,cACtBL,EAAEM,UAAUR,EAAO,CAAA,CAAI,EAC3BS,SAAU,WACR,MAAO,CAAC,CAACtL,KAAKmL,QAAU,CAAC,CAACnL,KAAKgL,KACjC,CACF,CACF,EAWAO,WAAY,SAAU7C,EAAI8C,GACpBvL,EAAE8B,QAAQ2E,UAAU,EACtBgC,EAAG+C,MAAMD,QAAUA,EAEnBvL,EAAEyI,CAAE,EAAEtI,KAAK,SAAUC,EAAGc,GACG,KAAA,IAAdA,EAAEqK,QACXrK,EAAEqK,QAAUA,EAEZvL,EAAEkB,CAAC,EAAEuK,IAAI,UAAWF,CAAO,CAE/B,CAAC,CAEL,EAIAG,MAAO,WAGS,SAAZC,EAAsBlD,EAAImD,EAAIC,EAAOC,GACnC,IAAIC,EAEF1D,EADA2D,EAAcF,EAAW,GAEzBhB,EAAI9K,EAAE8B,QAAQG,MAEhB,GAAkB,UAAd,OAAOwG,GAET,GAAI,EADJJ,EAAM4D,EAASxD,IAEb,MACF,MAEAsD,EAAQjB,EAAEZ,YAAY+B,EAAU,KAAMxD,CAAE,IAEtC,OAAOwD,EAASF,GAElBE,EAAS,EAAEC,GAAW7D,EAAMI,EAC5BA,EAAKyD,EAKPN,GAFAC,EAAQA,GAAS,GAGoB,IAAnCD,EAAKC,EAAQG,EACTH,EACAD,EAAKC,EAAQG,EAEnBlB,EAAEQ,WAAWjD,EAAKuD,CAAE,EAChBA,EAAKC,GACPM,WAAW,WACTR,EAAUlD,EAAImD,EAAIC,EAAOC,CAAQ,CACnC,EAAG,EAAE,CAET,CAnCF,IAAIG,EAAW,GACbC,EAAU,EAmCZ,OAAOP,CACR,EAAE,EACHS,SAAU,SAAUC,GAQlB,OAAQA,EAAOC,OAAS,QAAQ/L,YAAY,CAC9C,EACAgM,aAAc,SAAU9D,EAAI+D,GACtBC,EAAOzM,EAAEyI,CAAE,EAAEgE,KAAKD,CAAQ,EAE9B,OAAuB,KAAA,IAATC,GAAiC,CAAA,IAATA,CACxC,CACF,EACAC,aAAc,SAAU9L,EAAM+L,GAC5B,IAGIZ,EACFa,EACAxC,EACAyC,EANF,OAAKjM,EAAKoE,WAKRoF,EAASpK,EAAE,EACX6M,EAAO7M,EAAE8B,QAAQG,MAAMqG,MAAMqE,CAAQ,EACvC/L,EAAKoE,UAAU7E,KAAK,SAAUC,EAAGc,GAC/B,IAAK6K,EAAQ,EAAGA,EAAQc,EAAKjE,OAAQmD,CAAK,GACxCa,EAAMC,EAAKd,GACP/L,EAAEkB,CAAC,EAAE4L,GAAG,IAAMlM,EAAK4D,QAAU,KAAOoI,EAAM,IAAI,IAChDxC,EAASA,EAAO2C,IAAI7L,CAAC,EAG3B,CAAC,EACMkJ,GAdE,IAeX,EACA4C,gBAAiB,SAAU3E,GACzB,IAAI4E,EAAKC,EACT,OAAQ7E,EAAI8E,SAAW9E,EAAI8E,QAAQ5M,YAAY,GAC7C,IAAK,OACH2M,EAAKlN,EAAEqI,CAAG,EAAE+E,OAAO,EAAEX,KAAK,MAAM,EAChCQ,EAAMjN,EAAE,gBAAkBkN,EAAK,IAAI,EAAE,GACrC,MACF,IAAK,MACHD,EAAM5E,CAEV,CACA,OAAO4E,EAAMlN,KAAKkC,MAAMiI,YAAYnK,KAAK2G,UAAW,QAASuG,CAAG,EAAI,CAAC,CACvE,EACAI,WAAY,SAAUhF,GAChB0D,EAAQhM,KAAKiN,gBAAgB3E,EAAIO,OAASP,EAAI,GAAKA,CAAG,EAC1D,GAAa,GAAT0D,EACF,OAAoBhM,KAAK2G,UAAUqF,EAEvC,EASAuB,aAAc,SAAUC,EAAU7C,EAAM8C,EAASxF,GAC/C,MAAKuF,CAAAA,CAAAA,GAGL,EAAKA,EAASlC,UAAYkC,CAAAA,EAASE,gBACjCF,EAASG,SAAS5G,KAAK,CACrB4D,KAAMA,EACN8C,QAASA,EACTxF,KAAMA,CACR,CAAC,EACM,GAGX,EACA2F,OAAQ,WAMN,OALA5N,KAAKiC,KAAK2L,OAAO,EACjB5N,KAAKkC,MAAQ,KACblC,KAAKiC,KAAO,KACZhC,EAAEC,GAAG6B,QAAU,KACf9B,EAAE8B,QAAU,KACL9B,EAAE,GAAG,EAAE4N,IAAI,UAAU,CAC9B,CACF,EAiBQ5N,EAAE8B,SACRgJ,EAAIjJ,EAAEI,MACN4L,GAAKzL,MAAMC,UAGbrC,EAAEG,KAAK,CAAC,QAAS,UAAW,SAAUC,EAAGc,GACvC,IAAI4M,EAAU5M,EAAE6M,OAAO,EAAG,CAAC,EAAEC,YAAY,EAAI9M,EAAE6M,OAAO,CAAC,EAMvDjD,EAAE,MAAQgD,GAAW,SAAUb,EAAKgB,GAClC,OACGA,EAAUjO,EAAEiN,CAAG,EAAE/L,GAAG,EAAI,IACzB+L,EAAI/L,IACJ+L,EAAI,UAAYa,IAChBb,EAAI,SAAWa,IACfb,EAAI,SAAWa,EAEnB,CACF,CAAC,EAeDjM,EAAEqM,OAAS,SAAUxD,EAAMyD,EAAUC,EAAWxN,GAC9C,IAAImH,EAAKhI,KACTgI,EAAG1H,KAAOO,EAAKP,KACf0H,EAAGsG,OAAS3D,EACZ3C,EAAGuG,MAAQ5D,EACX3C,EAAGwG,MAAQ3N,EAAK2N,OAAS,CAAA,EACzBxG,EAAGC,KAAOpH,EAAKoH,KAAO6F,GAAGvL,MAAMZ,KAAKd,EAAKoH,KAAM,CAAC,EAAI,GACpDD,EAAG6E,IAAMhM,EAAKgM,IACd7E,EAAGoG,SAAWA,EACdpG,EAAGqG,UAAYA,EAEfrG,EAAG1H,KAAOO,EAAKP,KACf0H,EAAGyG,WAAa5N,EAAK4N,YAAc,CAAA,CACrC,EACA3M,EAAEqM,OAAO7L,UAAY,CACnB8F,YAAatG,EAAEqM,OACfO,GAAI,WAWF,IAVA,IACEC,EACAC,EAEAvE,EACAb,EAAMxJ,KAAKuO,MACXM,EAAY,GACZ7G,EAAKhI,KAEP8O,EAAMtF,EAAIX,OACLD,EAAI,EAAGA,EAAIkG,EAAKlG,CAAC,GAEpB,GADA+F,EAAO1O,EAAE8B,QAAQuL,WAAW9D,EAAIZ,EAAE,EAEhC,GACE,CAACZ,EAAGyG,YACJ3M,EAAEyL,aAAaoB,EAAM3G,EAAGuG,MAAOvG,EAAG1H,KAAM0H,EAAGC,IAAI,EAE3CjI,KAAKwO,QACPnE,EAAS,SAab,IARAuE,EAAKD,EAAKI,QAA4B,SAApBvF,EAAIZ,GAAGqB,SAAsBT,EAAIZ,GAAK5I,KAAK6M,GAAG,GAE1D5M,EAAEyJ,QAAQkF,EAAIC,CAAS,EAAI,GAC7BA,EAAU9H,KAAK6H,CAAE,EAGnBvE,EAASrK,KAAKoO,SAAShM,MAAMuM,EAAM3G,EAAGC,IAAI,EAExCjI,KAAKwO,OAA2B,KAAA,IAAXnE,EACvB,MASN,OAJApK,EAAE4O,CAAS,EAAEzO,KAAK,SAAUC,EAAGc,GAC7BkJ,EAASrC,EAAGqG,UAAUjM,MAAMjB,EAAG6G,EAAGC,IAAI,CACxC,CAAC,EAEqB,KAAA,IAAXoC,EACFA,EAEArK,KAAKsO,MAEhB,CACF,EAEArO,EAAE8B,QAAQE,KAAO,WACf,IAAI+F,GAAK,GACPgH,OAAS,SAAUxB,GACjB,OAAO1L,EAAE6E,UAAUI,KAAKyG,CAAQ,EAAI,CACtC,EACAyB,UAAY,SAAUzB,GACpB1L,EAAE6E,UAAUoC,OAAOyE,EAASxB,MAAO,CAAC,EACpC,IAAK,IAAIpD,EAAI9G,EAAE6E,UAAUkC,OAAS,EAAGD,GAAK4E,EAASxB,MAAOpD,CAAC,GACzD9G,EAAE6E,UAAUiC,GAAGoD,KAAK,EAExB,EASF,SAASkD,SACP,IAAIC,EAAIlP,EAAE,SAAS,EAAEmP,SAAS,MAAM,EAGhCC,GAFJF,EAAEG,KAAK,oCAAoC,EAEnCH,EAAE,GAAGI,YAETC,GADJH,EAAE5D,MAAMgE,SAAW,oBACTJ,CAAAA,GAAqB,UAAjB,OAAOA,EAAEK,KAEvB,OADAP,EAAEQ,OAAO,EACFH,CACT,CAMA,SAASI,aACP,MAAsC,UAA/B,OAAOC,SAASD,WACnBC,SAASD,WACT,IACN,CASA,SAASlJ,YACP,IAAIoJ,EAAIF,WAAW,EAGnB,MAAOE,EAAAA,GAAKA,EAAEC,QAEV9P,CAAAA,EAAE,YAAY,EAAE,GAAG+P,WAGzB,CASA,SAASC,YAAYzC,EAAU5H,GAC7B,IACEoG,EACAkE,EAAY1C,EAAS2C,QAAQvK,MAE3BA,GACF3F,EAAEG,KAAKwF,EAAO,SAAUvF,EAAGc,GAGpBA,GAAMA,EAAE0L,MAMA,IAFbb,EAAQjB,EAAEZ,YAAY+F,EAAW,MAAO/O,EAAE0L,GAAG,GAG3C5M,EAAE2J,OAAOsG,EAAUlE,GAAQ7K,CAAC,EAE5B+O,EAAUnJ,KAAK5F,CAAC,EAElByN,EAAKpB,EAAS4C,cAAcjP,EAAE0L,GAAG,IAE/B5M,EAAE2J,OAAOgF,EAAGuB,QAAShP,CAAC,CAE1B,CAAC,CAEL,CACA,SAASkP,cAAc7C,EAAU2C,GAC/B,IAAIG,EAAYvF,EAAE/B,YAAY,GAAImH,CAAO,EACzC,OAAOG,EAAU1K,MAEjBmF,EAAE/B,YAAYwE,EAAS2C,QAASG,CAAS,EAEzCL,YAAYzC,EAAU2C,EAAQvK,KAAK,EAEnCmF,EAAE/B,YAAYwE,EAAS+C,aAAc/C,EAAS2C,OAAO,CACvD,CAucA,OA1bAnI,GAAGhH,IAAM,SAAU6L,GACjB,IAAI2D,EAAK1O,EAAEwL,WAAWtN,IAAI,EAC1B,GAAMwQ,GAAMA,EAAGlF,SAIf,OAAO,IAAIxJ,EAAEqM,OACXnO,KACA,WAEE,OAAOA,KAAKyQ,YAAY,CAC1B,EACA,WACE,OAAOzQ,KAAK0Q,WAAW,CACzB,EACA,CACEpQ,KAAM,MACN2H,KAAMzF,UACNqK,IAAKA,EACL2B,MAAO,CAAA,EACPC,WAAY,CAAA,EACZkC,cAAe,EACjB,CACF,EAAEjC,GAAG,EApBH,KAAM,2CAqBV,EACA1G,GAAG2G,KAAO,SAAU9B,GAClB,OAAO,IAAI/K,EAAEqM,OACXnO,KACA,KACA,WACE,OAAOA,IACT,EACA,CAAEM,KAAM,OAAQ2H,KAAMzF,UAAWqK,IAAKA,CAAI,CAC5C,EAAE6B,GAAG,CACP,EAOA1G,GAAG3E,UAAY,SAAUwJ,GACvB,OAAO,IAAI/K,EAAEqM,OACXnO,KACA,WACE,IAGMmN,EAHN,GAAY,CAAA,IAARN,EAIF,OAAa,IADTM,EAAKnN,KAAK4Q,aACG5Q,KAAK2O,KAAKxB,GAAIN,IAAM,KAHrC7M,KAAK6Q,kBAAkB,CAK3B,EACA,WACE7Q,KAAKqD,UAAU,CACjB,EACA,CAAE/C,KAAM,YAAa2H,KAAMzF,UAAWqK,IAAKA,EAAK2B,MAAO,CAAA,CAAK,CAC9D,EAAEE,GAAG,CACP,EAQA1G,GAAG8I,KAAO,SAAUjE,EAAK1F,GACvB,IAAI4J,EAAU,GACZP,EAAK1O,EAAEwL,WAAWtN,IAAI,EAExB,GAAMwQ,GAAMA,EAAGlF,SAsBf,OAAMkF,GAAMA,EAAGlF,UAGI,UAAf,OAAOuB,EACL1F,EACF6J,EAAcR,EAAGJ,cAAcvD,CAAG,CAAC,EAEnCkE,EAAU,CAACP,EAAGS,gBAAgBpE,CAAG,IAGnC1F,EAAM0F,EACN7M,KAAKI,KAAK,SAAUC,EAAGc,GACF,SAAfA,EAAE8I,UACJ+G,EAAcR,EAAGU,eAAe/P,CAAC,CAAC,CAEtC,CAAC,GAEI4P,EAAQI,KAAK,GAAG,GAhBd,GAtBP,KAAM,4CAGR,SAASH,EAAcI,GACrB,IAAIxL,EACFkL,EAAO,GACJ3J,GAGHvB,EAAQwL,EAAGxL,MAAM,EACjB3F,EAAEG,KAAKwF,EAAO,SAAUvF,EAAGc,GACzB2P,EAAOA,EAAKO,OAAOlQ,EAAE2P,IAAI,CAC3B,CAAC,GALDA,EAAK/J,KAAKqK,EAAGvE,GAAG,EAOlB5M,EAAEG,KAAK0Q,EAAM,SAAUzQ,EAAGc,GACpBlB,EAAEyJ,QAAQvI,EAAG4P,CAAO,EAAI,GAC1BA,EAAQhK,KAAK5F,CAAC,CAElB,CAAC,CACH,CAoBF,EACA6G,GAAGsJ,OAAS,WACVtJ,GAAGuJ,IAAI5P,KAAK3B,KAAM,CAAA,CAAI,CACxB,EACAgI,GAAGwJ,SAAW,WACZxJ,GAAGuJ,IAAI5P,KAAK3B,KAAM,CAAA,CAAK,CACzB,EAaAgI,GAAGuJ,IAAM,SAAUtL,EAAU4G,EAAKsD,GAChC,IAAIsB,EACFjE,EAEAZ,EACAiC,EAFAhO,EAAOsP,EAqBT,SAASuB,EAAQ9C,GACXA,GAAM3O,EAAEyJ,QAAQkF,EAAIC,CAAS,EAAI,IACnCA,EAAU9H,KAAK6H,CAAE,EACjBhC,IAA0B,KAAbA,EAAkB,GAAK,KAAOgC,EAAG/B,IAElD,CAEA,SAAS8E,EAAgBnE,GACvBvN,EAAEG,KAAKyO,EAAW,SAAUxO,EAAGqI,GAC7BkJ,IA1BkBhD,EA0BLlG,EAxBf,GAAIkG,EACF,OAAQ3I,GACN,IAAK,CAAA,EACH2I,EAAG0C,OAAOzQ,CAAI,EACd,MACF,IAAK,CAAA,EACH+N,EAAG4C,SAAS,CAAA,CAAI,EAChB,MACF,QACa5C,EAAGiD,OAAOhR,CAAI,CAE7B,CAcF,CAAC,EACIoF,GACHuH,EAASsE,sBAAsB,CAEnC,CAgDA,OA9CA9R,KAAK+R,OAAO,UAAU,EAAE3R,KAAK,SAAUC,EAAGc,GACxC,IAAI2P,GACJtD,EAAW1L,EAAEwL,WAAWnM,CAAC,KAERsQ,IACXA,GACFE,EAAgBF,CAAO,EAGzB5C,EAAY,GACZjC,EAAW,IAGTY,IACFsD,EAAO,GAC0B,QAA7B3P,EAAE8I,SAASgE,YAAY,EACpBnM,EAAEyL,aAAaC,EAAUvN,EAAEkB,CAAC,EAAG,MAAO,CAAC8E,EAAU4G,EAAKhM,EAAK,IAC1DgM,aAAexK,MACbwK,EAAIhE,SACNiI,EAAOjE,EAAIsE,KAAK,GAAG,GAGrBL,EAAOjE,EAGLiE,GACF7Q,EAAEG,KAAK2K,EAAExC,MAAMuI,CAAI,EAAG,SAAUzQ,EAAGwM,GACjC6E,EAAQlE,EAAS4C,cAAcvD,EAAImF,SAAS,CAAC,CAAC,EAC9CP,EAAUjE,CACZ,CAAC,IAIL3M,EAAOgM,EACF/K,EAAEyL,aAAaC,EAAUvN,EAAEkB,CAAC,EAAG,MAAO,CAAC8E,EAAUpF,EAAK,IACzD6Q,EAAQlE,EAAS0D,eAAe/P,CAAC,CAAC,EAClCsQ,EAAUjE,IAIlB,CAAC,EAEGA,GACFmE,EAAgBnE,CAAQ,EAGnBxN,IACT,EACAgI,GAAGiK,OAAS,SAAUC,GACpB,OAAO,IAAIpQ,EAAEqM,OACXnO,KACA,WACEA,KAAKmS,YAAY,EACjBnS,KAAKoS,aAAaF,CAAa,EAC/BjD,UAAUjP,IAAI,CAChB,EACA,KACA,CAAEM,KAAM,SAAU2H,KAAMzF,SAAU,CACpC,EAAEkM,GAAG,CACP,EAGA1G,GAAGqK,OAAS,SAAUlC,GACpB,OAAO,IAAIrO,EAAEqM,OACXnO,KACA,WACE,IAAIgI,EAAKhI,KAETgI,EAAGsD,SAAW,CAAA,EACdtD,EAAGsK,iBAAiBnC,CAAO,EAC3BnI,EAAGuK,WAAW,EAAE7K,KAAK,WACnBM,EAAGwK,aAAa,CAAA,CAAI,EACpBxK,EAAGsD,SAAW,CAAA,EACdtD,EAAG9C,aAAa,CAClB,CAAC,CAEH,EACA,KACA,CACE5E,KAAM,SACN2H,KAAMzF,SACR,CACF,EAAEkM,GAAG,CACP,EAEA1G,GAAGyK,YAAc,SAAU5F,EAAK6F,GAC9B,IAAIC,EAAM5H,EAAEP,OAAOqC,CAAG,EAAIA,EAAM6F,EAChC,OAAO,IAAI5Q,EAAEqM,OACXnO,KACA,WACE,IAAIa,EAAOZ,EAAE2J,OAAO,GAAI5J,KAAKmQ,OAAO,EAgBpC,OAfIwC,IACF9R,EAAKkF,cAAgBgF,EAAE/B,YACrB,GACAlH,EAAEc,gBACF/B,EACAA,EAAKkF,aACP,EAEAlF,EAAKiF,iBAAmBiF,EAAE/B,YACxB,GACAlH,EAAEc,gBACF/B,EACAA,EAAKiF,gBACP,GAEKjF,CACT,EACA,WACE,OAAO8R,EAAM3S,KAAK4S,iBAAiB,EAAI5S,KAAKmQ,OAC9C,EACA,CACE7P,KAAM,cACN2H,KAAMzF,UACNgM,MAAO,CAAA,EACPC,WAAY,CAAA,EACZ5B,IAAKA,CACP,CACF,EAAE6B,GAAG,CACP,EAGA1G,GAAG6K,YAAc,SAAU1C,GACzB,OAAO,IAAIrO,EAAEqM,OACXnO,KACA,WACEqQ,cAAcrQ,KAAMmQ,CAAO,CAC7B,EACA,KACA,CACE7P,KAAM,cACN2H,KAAMzF,SACR,CACF,EAAEkM,GAAG,CACP,EACA1G,GAAG4F,OAAS,WAEV,IADA,IACKhF,EAAI9G,EAAE6E,UAAUkC,OAAS,EAAQ,GAALD,EAAQA,CAAC,GACpC9G,EAAE6E,UAAUiC,IACdZ,GAAGiK,OAAOtQ,KAAK1B,EAAE6B,EAAE6E,UAAUiC,GAAGiC,KAAK,CAAC,EAG1C7C,GAAG8K,SAAW,IAChB,EAEA9K,GAAG+K,SAAW,WACZ,OAAO,IAAIjR,EAAEqM,OACXnO,KACA,WACEC,EAAEG,KAAKJ,KAAK2O,KAAM,SAAUtO,EAAGc,GAC7BA,EAAE8E,SAAW,CAAA,CACf,CAAC,EAEDjG,KAAKgT,YAAchT,KAAK8S,SAASG,oBAAoBjT,IAAI,EACzDC,EAAED,KAAK6K,KAAK,EAAEqI,OAAOlT,KAAKgT,WAAW,CACvC,EACA,KACA,CAAE1S,KAAM,UAAW,CACrB,EAAEoO,GAAG,CACP,EAIA1G,GAAGmL,MAAQ,WACT,IAAI3C,EACFnG,EAAS,KAUX,OATApK,EAAED,IAAI,EAAEI,KAAK,SAAUC,EAAGc,GACxB,GAAmB,QAAfA,EAAE8I,SAKJ,OAJAuG,EAAK1O,EAAEwL,WAAWnM,CAAC,KAEjBkJ,EAASmG,EAAG2C,MAAM,GAEb,CAAA,CAEX,CAAC,EACM9I,CACT,EAEArC,GAAGtF,KAAO,SAAUyN,GAClB,OAAOnQ,KAAKI,KAAK,SAAUC,EAAGc,GAC5B,IAASiS,EAGTlG,EAAMjN,EAAEkB,CAAC,EAETqP,EAAK1O,EAAEwL,WAAWnM,CAAC,EAInB,GAAIqP,EAAI,CAEN,GADAxI,GAAGiK,OAAO7P,MAAM8K,CAAG,EACf,CAACsD,EAAGlF,SAEN,MAAO,CAAA,EAETkF,EAAK,IACP,CAQA,GADA4C,GADAC,EAASrT,KAAKsT,aAAa,QAAQ,IACnBrT,EAAE,aAAeoT,EAAOrF,OAAO,CAAC,EAAI,IAAI,EACpD,EAAEd,EAAIH,GAAG,KAAK,GAAKsG,GAAuB,EAAbD,EAAIvK,QACnC,MAAO,CAAA,EAITqE,EAAIxB,IAAI,SAAU,CAAC,EAEd8E,KACHA,EAAK,IAAI1O,EAAEyR,QAAQvT,KAAMmQ,CAAO,GAE7BnE,MAAQgD,OAAOwB,CAAE,EACpBA,EAAG4C,IAAMA,EACT5C,EAAG+B,WAAW,EAAE7K,KAAK,WACnB8I,EAAGgD,WAAW,CAChB,CAAC,EAEL,CAAC,CACH,EAEAxL,GAAGG,KAAO,SAAUsL,GAClB,IAAIhI,EAAOiI,EAKX5R,EAAE4E,UAAY,WAIZ,OAHKqE,EAAEP,OAAO1I,EAAE4E,UAAUiN,KAAK,IAC7B7R,EAAE4E,UAAUiN,MAAQ5I,EAAEP,OAAOiJ,CAAS,EAAIA,EAAY/M,UAAU,GAE3D5E,EAAE4E,UAAUiN,KACrB,EAEA7R,EAAEoN,OAAS,WACT,IAEMY,EA0BN,OA5BK/E,EAAEP,OAAO1I,EAAEoN,OAAOyE,KAAK,KAEtB7D,EAAIF,WAAW,IAEV,CAACE,EAAE8D,IACV9D,EAAE9C,IAAI,IAAK,+BAA+B,EAC1CvB,EAAQoE,SAASgE,iBAAiB,EAClCH,EAAS,CACP,QACA,OACA,OACA,OACA,OACA,SACA,YACA,QACA,WAEFzT,EAAEG,KAAKsT,EAAQ,SAAUrT,EAAGqI,GAC1B+C,EAAMqI,QACJ,OAASpL,EACT,6CACF,CACF,CAAC,GAEH5G,EAAEoN,OAAOyE,MAAQzE,OAAO,GAGnBpN,EAAEoN,OAAOyE,KAClB,EAEA1T,EAAE2J,OAAO9H,EAAEgC,SAAUhC,EAAEc,gBAAiBd,EAAE+D,eAAe,EACzD5F,EAAE2J,OAAO9H,EAAEoE,cAAepE,EAAEc,gBAAiBd,EAAE+D,eAAe,CAChE,EACAmC,GAAG+L,KAAO,SAAUzL,KAClB,OAAO0L,KAAK1L,GAAG,CACjB,EACON,EACR,EAAE,EAEH/H,EAAE8B,QAAQE,KAAKkG,KAAK,CACrB,EAAEzI,MAAM,EAOT,CAAA,SAAWO,GACT,aAEA,IAAIwJ,EAGFwK,EACAC,EAHApS,EAAI7B,EAAE8B,QACNgJ,EAAIjJ,EAAEI,MAUR,SAASiS,EAAkBrB,EAAUsB,EAAUjE,GAC7C,IAAInI,EAAK8K,EACPtC,EAAKxI,EAAGwF,SACRrH,EAASgK,EAAQhK,OAKnBlG,EAAEG,KAAKgU,EAASxO,MAAM,EAAG,SAAUvF,EAAGc,GACpCgP,EAAQhK,OAASA,GAAWhF,EAAEkT,QAAU7D,EAAGL,QAAQ/K,aACnD4C,EAAGsM,SAASnT,EAAGgP,CAAO,CACxB,CAAC,EAKDA,EAAQhK,OAASA,CACnB,CAQA,SAASoO,EAAeC,GACtB,OAAOC,KAAKC,IAAI,EAAGD,KAAKE,IAAIC,SAASJ,EAAK,EAAE,EAAG,GAAG,CAAC,CACrD,CACA,SAASK,EAAUC,EAAOtJ,GACxB,MACE,QACA+I,EAAeO,EAAM9G,OAAO,EAAG,CAAC,CAAC,EACjC,IACAuG,EAAeO,EAAM9G,OAAO,EAAG,CAAC,CAAC,EACjC,IACAuG,EAAeO,EAAM9G,OAAO,EAAG,CAAC,CAAC,EACjC,IACAxC,EACA,GAEJ,CAmIA,SAASuJ,KA7HTjT,EAAEkT,SAAW,SAAUxH,GAMrB,IAAIxF,EAAKhI,KACTgI,EAAGiN,OAAS,CAAA,EACZjN,EAAGkN,OAAS,KACZlN,EAAGgD,MAAQ,EACXhD,EAAGmD,OAAS,EACZnD,EAAG0L,OAAS,GACZ1L,EAAGmN,MAAQ,GACXnN,EAAGwF,SAAWA,CAChB,EAEA/D,EAAI3H,EAAEkT,SAAS1S,UAAY,CACzB8F,YAAatG,EAAEkT,SAQfI,MAAO,SAAUF,EAAQG,GACvB,IAAIC,EAAIrV,EAAEiV,CAAM,EAEhBlV,KAAKqV,YAAcA,EACnBrV,KAAKkV,OAASA,EAEdlV,KAAKgL,MAAQsK,EAAEtK,MAAM,EACrBhL,KAAKmL,OAASmK,EAAEnK,OAAO,EACvBnL,KAAK0T,OAAS,GACd1T,KAAKmV,MAAQ,GACbnV,KAAKiV,OAAS,CAAA,CAChB,EASAX,SAAU,SAAUiB,EAASpF,IACfA,EAAQhK,OAASnG,KAAKmV,MAAQnV,KAAK0T,QACzC3M,KAAK,CAAEwO,QAASA,EAASpF,QAASA,CAAQ,CAAC,CACnD,EAQA8C,oBAAqB,SAAUuC,GAC7B,OAAOvV,EAAED,KAAKyV,gBAAgBD,CAAO,CAAC,EACnCE,SAAS,YAAY,EACrBhK,IAAI5J,EAAEsE,YAAY,EAAE,EACzB,EAWAuP,cAAe,SAAUvB,EAAUwB,EAAMzF,GAEvC,IAEE7P,EAFE0H,EAAKhI,KAIPwN,EAAWxN,KAAKwN,SAChB3M,EAAOuT,EAASyB,uBAAuBD,CAAI,EAEzCzF,GACFlQ,EAAE2J,OAAO/I,EAAMsP,CAAO,EAKtB+E,EAFW,WAATU,GACFtV,EAAO,UAAY8T,EAAS0B,OAAO9D,SAAS,EACnCxE,EAASwF,aAETxF,EAASuI,eAGpB/N,EAAGoN,MAAMF,EAAQ5U,CAAI,EAEjBO,EAAK6C,cACPoJ,EAAO/B,EAAExC,MAAM1H,EAAK6C,WAAW,EAC/BzD,EAAEG,KAAK0M,EAAM,SAAUzM,EAAGc,GACpBiT,EAAW5G,EAAS4C,cAAcjP,EAAE6Q,SAAS,CAAC,EAClDmC,EACEnM,EACAoM,EACAA,EAASyB,uBAAuBD,CAAI,CACtC,CACF,CAAC,GAGHzB,EAAkBnM,EAAIoM,EAAUvT,CAAI,EACpCmH,EAAGgO,OAAO,EACNnV,EAAKkC,MAIPgI,EAAEY,MACA7J,EAAE4E,UAAU,EACRwO,EACAjV,EAAEiV,CAAM,EAAEe,KAAK,QAAQ,EAAEC,IAAI,eAAe,EAChD,EACApU,EAAE4E,UAAU,EAAI,EAAI7F,EAAKuC,YACzBvC,EAAKmC,YACP,CAEJ,CAGF,EAMAiR,EAAgB,CACdkC,YAAa,SAAUlP,EAASsO,EAASa,GACvC,IAAIxN,EACF0M,EAAIC,EAAQc,OAAO,KAAMD,CAAM,EAEjC,OAAQb,EAAQhJ,OACd,IAAK,OACL,IAAK,YACHtF,EAAQqP,KAAKhB,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAKA,EAAE,GAAIA,EAAE,GAAKA,EAAE,EAAE,EACjD,MACF,IAAK,OACL,IAAK,UAGH,IAFArO,EAAQsP,OAAOjB,EAAE,GAAIA,EAAE,EAAE,EAEpB1M,EAAI,EAAGA,EAAI2M,EAAQ1M,OAAQD,GAAK,EACnC3B,EAAQuP,OAAOlB,EAAE1M,GAAI0M,EAAE1M,EAAI,EAAE,EAE/B3B,EAAQuP,OAAOlB,EAAE,GAAIA,EAAE,EAAE,EACzB,MACF,IAAK,OACL,IAAK,SACHrO,EAAQwP,IAAInB,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAI,EAAa,EAAVb,KAAKiC,GAAQ,CAAA,CAAK,CAEvD,CACF,EACAC,YAAa,SAAU1P,EAAS4D,EAAO0K,EAASpF,GAC9ClJ,EAAQ2P,UAAU,EAElB5W,KAAKmW,YAAYlP,EAASsO,CAAO,EACjCtO,EAAQ4P,UAAU,EAClB5P,EAAQ6P,KAAK,EAEb7P,EAAQ8P,YAAc5G,EAAQ6G,iBAAmB7G,EAAQ/M,YAEzD6D,EAAQgQ,UACNpM,EACA,EACA,EACA0K,EAAQ2B,MAAMC,UAAUnM,MACxBuK,EAAQ2B,MAAMC,UAAUhM,MAC1B,CACF,EACA6K,OAAQ,WAKN,IAAIoB,EACFC,EACArP,EAAKhI,KACLwQ,EAAKxI,EAAGwF,SACR8J,EAAWtP,EAAGmN,MAAMtM,OACpB0O,EAAcvP,EAAGyN,gBAAgBjF,CAAE,EACnCgH,EAAeD,EAAYvH,WAAW,IAAI,EAC1C/I,EAAUe,EAAGkN,OAAOlF,WAAW,IAAI,EAiFrC,OA/EIsH,IACFF,EAAapP,EAAGyN,gBAAgBjF,CAAE,GAClC6G,EAAcD,EAAWpH,WAAW,IAAI,GAC5ByH,UAAU,EAAG,EAAGL,EAAWpM,MAAOoM,EAAWjM,MAAM,EAE/DlL,EAAEG,KAAK4H,EAAGmN,MAAO,SAAU9U,EAAGc,GAC5BkW,EAAYK,KAAK,EACjBL,EAAYT,UAAU,EACtB5O,EAAGmO,YAAYkB,EAAalW,EAAEoU,OAAO,EACrC8B,EAAYR,UAAU,EACtBQ,EAAYP,KAAK,EACjBO,EAAYM,UAAY,EACxBN,EAAYO,UAAY,OACxBP,EAAYpU,KAAK,EACjBoU,EAAYQ,QAAQ,CACtB,CAAC,GAGH5X,EAAEG,KAAK4H,EAAG0L,OAAQ,SAAUrT,EAAGyX,GAC7BN,EAAaE,KAAK,EACdI,EAAE3H,QAAQlN,OACR6U,EAAE3H,QAAQvM,WACZoE,EAAG2O,YACDa,EACAhH,EAAGuH,OAAOD,EAAE3H,QAAQvM,YACpBkU,EAAEvC,QACFuC,EAAE3H,OACJ,GAEAqH,EAAaZ,UAAU,EACvB5O,EAAGmO,YAAYqB,EAAcM,EAAEvC,OAAO,EACtCiC,EAAaX,UAAU,EAEvBW,EAAaI,UAAY/C,EACvBiD,EAAE3H,QAAQjN,UACV4U,EAAE3H,QAAQ/M,WACZ,EACAoU,EAAavU,KAAK,IAGtBuU,EAAaK,QAAQ,CACvB,CAAC,EAID5X,EAAEG,KAAK4H,EAAG0L,OAAOrC,OAAOrJ,EAAGmN,KAAK,EAAG,SAAU9U,EAAGyX,GAC9C,IAAI1B,EAAmC,IAA1B0B,EAAE3H,QAAQ1M,YAAoB,GAAM,EAG7CqU,EAAE3H,QAAQ7M,SACZkU,EAAaE,KAAK,EAClBF,EAAaQ,YAAcnD,EACzBiD,EAAE3H,QAAQ5M,YACVuU,EAAE3H,QAAQ3M,aACZ,EACAgU,EAAaG,UAAYG,EAAE3H,QAAQ1M,YAEnC+T,EAAaZ,UAAU,EAEvB5O,EAAGmO,YAAYqB,EAAcM,EAAEvC,QAASa,CAAM,EAC9CoB,EAAaX,UAAU,EACvBW,EAAalU,OAAO,EACpBkU,EAAaK,QAAQ,EAEzB,CAAC,EAEGP,GAGFD,EAAYY,yBAA2B,aACvCZ,EAAYJ,UAAUM,EAAa,EAAG,CAAC,EAGvCtQ,EAAQgQ,UAAUG,EAAY,EAAG,CAAC,GAElCnQ,EAAQgQ,UAAUM,EAAa,EAAG,CAAC,EAGrCvP,EAAGiN,OAAS,CAAA,EACLjN,EAAGkN,MACZ,EAGAO,gBAAiB,SAAUjF,GACzB,OAAOvQ,EACL,kBACEuQ,EAAG2G,UAAUnM,MACb,aACAwF,EAAG2G,UAAUhM,OACb,aACJ,EAAE,EACJ,EACA+M,eAAgB,WACd,IAAI5C,EAAItV,KAAKwN,SAASuI,eACtBT,EAAEtF,WAAW,IAAI,EAAEyH,UAAU,EAAG,EAAGnC,EAAEtK,MAAOsK,EAAEnK,MAAM,CACtD,EAEAgN,kBAAmB,WACjB,IACE3K,EAAWxN,KAAKwN,SAElB4K,EAAc5K,EAASwF,YAEvBxF,EAASwF,YAAchT,KAAKiT,oBAAoBzF,CAAQ,EACxDvN,EAAEuN,EAASwF,WAAW,EAAEqF,KAAK,EAC7BpY,EAAEmY,CAAW,EAAElF,OAAO1F,EAASwF,WAAW,EAE1CxF,EAAS8K,iBAAiB,EAE1BrY,EAAEuN,EAASwF,WAAW,EAAEuF,KAAK,EAC7BtY,EAAEmY,CAAW,EAAEzI,OAAO,CACxB,CACF,EAEAuE,EAAa,CACXiC,YAAa,SAAUZ,EAASpF,EAASqI,GACvC,IAOEpP,EAPEpB,EAAKhI,KAQPsV,EAAIC,EAAQc,OAAO,EACrBoC,EAAUzQ,EAAGqN,YAAc,SAAWrN,EAAGqN,YAAc,KAAO,GAC9DqD,EAAWF,EAAW,UAAYA,EAAW,KAAO,GAEpDG,EACE,mBACAxI,EAAQjN,UACR,6BACCiN,EAAQlN,KAAOkN,EAAQ/M,YAAc,GACtC,wCACA+M,EAAQ3M,cACR,MAEFF,EAAS6M,EAAQ7M,OACb,iBACA6M,EAAQ1M,YACR,8BACA0M,EAAQ5M,YACR,IACA,eAEJN,EAAOkN,EAAQlN,KAAO,cAAgB,cAEtC,OAAQsS,EAAQhJ,OACd,IAAK,OACL,IAAK,YACHnD,EACE,WACAsP,EACAD,EACAxV,EACAK,EACA,0EACAgS,EAAE,GACF,UACAA,EAAE,GACF,aACCA,EAAE,GAAKA,EAAE,IACV,cACCA,EAAE,GAAKA,EAAE,IACV,QACAqD,EACA,YACF,MACF,IAAK,OACL,IAAK,UACHvP,EACE,YACAsP,EACAD,EACAxV,EACAK,EACA,iCACA0E,EAAGgD,MACH,IACAhD,EAAGmD,OACH,aACAmK,EAAE,GACF,IACAA,EAAE,GACF,MACAA,EAAE/S,MAAM,CAAC,EAAE4O,KAAK,GAAG,EACnB,iGACAnJ,EAAGgD,MACH,aACAhD,EAAGmD,OACH,QACAwN,EACA,aACF,MACF,IAAK,OACL,IAAK,SACHvP,EACE,WACAsP,EACAD,EACAxV,EACAK,EACA,2EACCgS,EAAE,GAAKA,EAAE,IACV,WACCA,EAAE,GAAKA,EAAE,IACV,YACO,EAAPA,EAAE,GACF,aACO,EAAPA,EAAE,GACF,QACAqD,EACA,WAEN,CAIA,OAHAxX,EAAIlB,EAAEmJ,CAAQ,EACdnJ,EAAE+H,EAAGkN,MAAM,EAAE0D,OAAOzX,CAAC,EAEdA,CACT,EACA6U,OAAQ,WACN,IAAInV,EACFmH,EAAKhI,KAiBP,OAfAC,EAAEG,KAAKJ,KAAK0T,OAAQ,SAAUrT,EAAGc,GAC/B6G,EAAGmO,YAAYhV,EAAEoU,QAASpU,EAAEgP,OAAO,CACrC,CAAC,EAEGnQ,KAAKmV,MAAMtM,QACb5I,EAAEG,KAAKJ,KAAKmV,MAAO,SAAU9U,EAAGc,GAC9BN,EAAOkK,EAAE/B,YAAY,GAAI7H,EAAEgP,QAAS,CAClC/M,YAAa,EACbF,UAAW/B,EAAEgP,QAAQhN,aACvB,CAAC,EACD6E,EAAGmO,YAAYhV,EAAEoU,QAAS1U,EAAM,cAAc,CAChD,CAAC,EAGHb,KAAKiV,OAAS,CAAA,EACPjV,KAAKkV,MACd,EAEAO,gBAAiB,SAAUjF,GACzB,IAAIqI,EAAIrI,EAAG2G,UAAUnM,MACnB8N,EAAItI,EAAG2G,UAAUhM,OACnB,OAAOlL,EACL,eACE4Y,EACA,aACAC,EACA,uDACAD,EACA,aACAC,EACA,aACJ,EAAE,EACJ,EAEAZ,eAAgB,WACdjY,EAAED,KAAKwN,SAASuI,cAAc,EAAEgD,SAAS,EAAEpJ,OAAO,CACpD,EAEAqJ,iBAAkB,SAAUC,IACX,GAAXA,EACFhZ,EAAED,KAAKwN,SAASwF,WAAW,EACxBiD,KAAK,iBAAmBgD,EAAQjH,SAAS,EAAI,IAAI,EAGpD/R,EAAED,KAAKwN,SAASwF,WAAW,EAAE+F,SAAS,GAFnCpJ,OAAO,CAId,CACF,EAKA1P,EAAEG,KACA,CACE,cACA,cACA,SACA,kBACA,iBACA,mBACA,qBAEF,SAAUC,EAAGc,GACJ,IAAWa,EAAlByH,EAAEtI,IAAgBa,EAQfb,EAPM,WAKL,OAJAsI,EAAEzH,IACCF,EAAE4E,UAAU,EAAIuN,EAAwBC,GAAVlS,IAC/B+S,EAEKtL,EAAEzH,GAAQI,MAAMpC,KAAMwC,SAAS,CACxC,EAEJ,CACF,CACD,EAAE9C,MAAM,EAOT,CAAA,SAAWO,GACT,aAEA,IAAI6B,EAAI7B,EAAE8B,QACRgJ,EAAIjJ,EAAEI,MACN4L,EAAK,GAKPhM,EAAEoX,UAAY,SAAUhC,GACtBlX,KAAKkX,MAAQA,EACblX,KAAKmZ,MAAM,CACb,EAEArX,EAAEoX,UAAU5W,UAAY,CACtB8F,YAAatG,EAAEoX,UAIf3W,MAAO,WACL,OAAOuL,EAAGvL,MAAMH,MAAMpC,KAAMwC,SAAS,CACvC,EACAuG,OAAQ,WAGN,OAFA+E,EAAGvL,MAAMH,MAAMpC,KAAKoZ,OAAQ5W,SAAS,EACxBsL,EAAGvL,MAAMH,MAAMpC,KAAMwC,SAAS,CAE7C,EAMA8I,SAAU,WACR,OAAOrL,EAAEyJ,QAAQ,CAAA,EAAO1J,KAAKoZ,MAAM,EAAI,CACzC,EAQAC,KAAM,SAAUxO,GACVmB,EAAQ8B,EAAG/G,KAAKpF,KAAK3B,KAAM6K,CAAK,EAAI,EAExC,OADA7K,KAAKoZ,OAAOpN,GAAS,CAAA,EACdA,CACT,EAQA9B,QAAS,SAAUW,GACjB,OAAOE,EAAEb,QAAQlK,KAAM6K,CAAK,CAC9B,EAMAsO,MAAO,WACL,IAAInR,EAAKhI,KAELgI,EAAGsR,KAAuB,EAAhBtR,EAAGsR,IAAIzQ,QACnB5I,EAAEG,KAAK4H,EAAGsR,IAAK,SAAUjZ,EAAGc,GAC1B,OAAO6G,EAAG7G,EACZ,CAAC,EAQH6G,EAAGsR,IAAM,GASTtR,EAAGa,OAAS,EAOZb,EAAGoR,OAAS,GAIZpR,EAAGe,OAAO,CAAC,CACb,EAYAiE,IAAK,SAAUnC,EAAOsC,GACpB,IAAInB,EACFxC,EACAxB,EAAKhI,KAEP,GAAK6K,EAAL,CAIA,GAAqB,UAAjB,OAAOA,EAAoB,CAG7B,GAAqB,UAAjB,OADJA,EAAQ7C,EADRwB,EAAMqB,IAGJ,OAAO7C,EAAGkC,QAAQW,CAAK,EAGzBA,EAAQ5K,EAAE,SAAS,EAAEyV,SAAS,YAAY,EAAE2C,KAAK,EAEjDrM,EAAQhE,EAAGqR,KAAKxO,EAAM,EAAE,EAExBA,EACG0O,GAAG,eAAgB,SAAUpY,GAC5B6G,EAAGwR,YAAY7X,KAAKqG,EAAI7G,CAAC,CAC3B,CAAC,EACAoY,GAAG,gBAAiB,SAAUpY,GAC7B6G,EAAGyR,eAAe9X,KAAKqG,EAAI7G,CAAC,CAC9B,CAAC,EAEH0J,EAAM6B,KAAK,MAAOlD,CAAG,CACvB,MAGEwC,EAAQhE,EAAGqR,KAAKpZ,EAAE4K,CAAK,EAAE,EAAE,EAE7B,GAAIsC,EAAI,CACN,GAAInN,KAAKmN,GACP,MACEA,EAAK,6DAGTnF,EAAGsR,IAAIvS,KAAKoG,CAAE,EACdnF,EAAGmF,GAAMnF,EAAGgE,EACd,CACA,OAAOA,CApCP,CAqCF,EAOAtJ,KAAM,WACJ,IAAIsF,EAAKhI,KAEP0Z,EAAY1R,EAAGkP,MAAM/G,QAAQhL,cAAgB,IAI7CwU,EAAQ,WAON,IANA,IAIA/Q,EAAIZ,EAAGa,OAEM,EAAND,CAAC,IACDZ,EAAG4R,SAAShR,CAAC,IAOhBZ,EAAGsD,SAAS,EACdtD,EAAGR,QAAQ,EAGO,EAAdkS,CAAS,GACX1R,EAAG6R,WAAaja,OAAOwM,WAAW,WAChCuN,EAAMhY,KAAKqG,EAAI,CAAA,CAAI,CACrB,EAAG,EAAE,EAELA,EAAGyR,eAAe9X,KAAKqG,CAAE,CAG/B,EAEFT,EAAUS,EAAG8R,SAAW/O,EAAEzD,MAAM,EAGhC,OADAqS,EAAM,EACCpS,CACT,EAEAC,QAAS,WACP,IACEuS,EADO/Z,KACO8Z,SAEZC,IAHK/Z,KAMJ8Z,SAAW,KACdC,EAASvS,QAAQ,EAErB,EAOAgS,YAAa,SAAUrY,GAEnB6K,EADOhM,KACIkK,QAAQ/I,EAAEgI,MAAM,EAEhB,GAAT6C,IAHKhM,KAIJoZ,OAAOpN,GAAS,CAAA,EACf/L,EAAEyJ,QAAQ,CAAA,EALP1J,KAKiBoZ,MAAM,EAAI,IAL3BpZ,KAMFwH,QAAQ,CAGjB,EAOAiS,eAAgB,SAAUtY,GAMxB,MALA6Y,aAAaha,KAAK6Z,UAAU,EAC5B7Z,KAAK0Z,UAAY,EACPvY,EACN,aAAeA,EAAEgI,OAAOK,IAAM,mBAC9B,sIAEN,EAOAoQ,SAAU,SAAU5N,GAClB,IAAIkB,EAEFkM,EADKpZ,KACOoZ,OAEd,MAAIA,CAAAA,CAAAA,EAAOpN,KAKiB,KAAA,KAF5BkB,EANOlN,KAMEgM,IAEMV,SACb8N,EAAOpN,GAASkB,EAAI5B,SAEpB8N,EAAOpN,GAAS,CAAC,CAACjB,EAAEG,SAASgC,CAAG,EAK3BkM,EAAOpN,GAChB,CACF,CACD,EAAEtM,MAAM,EAOT,CAAA,SAAWO,GACT,aAEA,IAAI6B,EAAI7B,EAAE8B,QACRgJ,EAAIjJ,EAAEI,MAsFR,SAAS+X,EAAgBjS,EAAIkS,EAAOC,EAAML,GA4BxC,OA3BAA,EAAWA,GAAY/O,EAAE7D,KAAKI,MAAM,EAOhCU,EAAGoS,kBACLxa,OAAOoa,aAAahS,EAAGoS,eAAe,EACtCpS,EAAGoS,gBAAkB,GAEnBF,EAAQ,EACVJ,EAAStS,QAAQ,CAAE6S,eAAgB,CAAA,CAAM,CAAC,EAEtCF,EAAKjD,MAAMxJ,eAAiBwM,EAC9BlS,EAAGoS,gBAAkBxa,OAAOwM,WAEjB,WACL6N,EAAgBjS,EAAI,EAAGmS,EAAML,CAAQ,CACvC,EAEFI,GAAS,GACX,GApBapE,EAsBLqE,EAAKrE,OArBX9N,EAAGsS,gBAAkBxE,GAA4B,GAAlB9N,EAAG4I,aACpCkJ,EAAStS,QAAQ,CAAE6S,eAAgB,CAAA,CAAK,CAAC,GAuBtCP,CACT,CAEA,SAASS,EAAiBC,GACxB,MAAO,CAAC,CAACA,GAAiB,MAATA,CACnB,CASA,SAASC,EAAUtZ,GACZW,EAAE4E,UAAU,GACf1G,KAAK0a,KAAK,EAEZvZ,EAAEwZ,eAAe,CACnB,CA6OA7Y,EAAEyR,QAAU,SAAU1I,EAAOsF,GAC3B,IAAInI,EAAKhI,KAITgI,EAAG6C,MAAQA,EAEX7C,EAAG+P,OAAS,IAAIjW,EAAEoX,UAAUlR,CAAE,EAC9BA,EAAG8K,SAAW,IAAIhR,EAAEkT,SAAShN,CAAE,EAM/BA,EAAG4S,WAAa/P,EAAMY,MAAMoP,SAAW,KAxXvC5a,EAAE2J,OA0XiB5B,EA1XN,CACXsD,SAAU,CAAA,EACV8H,IAAK,KACLJ,YAAa,KACb+C,eAAgB,KAChBpI,SAAU,GACVgB,KAAM,GACNmM,SAAU,GACVC,MAAO,GACPnK,YAAa,CAAC,EACd0J,cAAe,CAAC,EAChBU,gBAAiB,GACjB7D,UAAW,KACXnL,MAAO,CAAC,EACRoO,gBAAiB,KACjBa,gBAAiB,IACnB,CAAC,EA4WDjT,EAAGsK,iBAAiBnC,CAAO,EAI3BnI,EAAGkT,UAAY,SAAU/Z,GACvB+Z,CA1PJ,SAAmBlT,EAAI7G,GACrB,IAAIga,EAASnT,EAAGoT,kBAAkBpb,IAAI,EACpC4O,EAAKuM,EAAOtS,OAASsS,EAAO,GAAK,KAK/B,CAACvM,GAAMA,EAAGyM,cAAc,GAAKzM,EAAGsI,MAAMxJ,eAItC1F,EAAGsS,gBAAkB1L,EAAGkH,SAGxB9N,EAAG4I,cAAgBhC,EAAGkH,SACxB9N,EAAGsT,aAAa,EAEhB1M,EAAGvL,UAAU,EAET2E,EAAGmI,QAAQoL,cACbtb,EAAEG,KAAK+a,EAAQ,SAAU9a,EAAGc,GACtBA,EAAEyR,iBAAiB,EAAE4I,SACvBra,EAAEoa,YAAY,CAElB,CAAC,EAILvT,EAAGsS,cAAgB1L,EAAGkH,OAElB/K,EAAE5I,WAAW6F,EAAGmI,QAAQtL,WAAW,IACrCmD,EAAGmI,QAAQtL,YAAYlD,KAAK3B,KAAM,CAChCmB,EAAGA,EACHgP,QAASvB,EAAGgE,iBAAiB,EAC7B/F,IAAK+B,EAAG/B,IACR5G,SAAU2I,EAAG8B,WAAW,CAC1B,CAAC,CAEL,EAoNc/O,KAAK3B,KAAMgI,EAAI7G,CAAC,CAC5B,EACA6G,EAAGyT,SAAW,SAAUta,GACtBsa,CA7MJ,SAAkBzT,EAAI7G,GACpB,IACEyN,EAAK5G,EAAGkJ,eAAelR,IAAI,EAC3Ba,EAAOmH,EAAGmI,QAERnI,EAAGsS,cAAgB,GAAK,CAAC1L,GAInB5G,EAAGkJ,eAAe/P,EAAEua,aAAa,IAE3B9M,IAIhB5G,EAAGsS,cAAgB,CAAC,EACpB1L,EAAGuL,KAAO,KAEVF,EAAgBjS,EAAInH,EAAKkE,cAAe6J,CAAE,EAAElH,KAAK,SAAU2C,GACpDA,EAAOgQ,gBAGZrS,EAAGsT,aAAa,CAClB,CAAC,EAEGvQ,EAAE5I,WAAWtB,EAAKiE,UAAU,IAC9BjE,EAAKiE,WAAWnD,KAAK3B,KAAM,CACzBmB,EAAGA,EACHgP,QAAStP,EACTgM,IAAK+B,EAAG/B,IACR5G,SAAU2I,EAAG8B,WAAW,CAC1B,CAAC,CAEL,EA4Ka/O,KAAK3B,KAAMgI,EAAI7G,CAAC,CAC3B,EACA6G,EAAG2T,MAAQ,SAAUxa,GACnBwa,CA/IJ,SAAe3T,EAAI7G,GACjB,IACEya,EACAC,EACAC,EACAC,EAKAC,EAJArR,EAAO3K,KACP4O,EAAK5G,EAAGkJ,eAAelR,IAAI,EAC3Ba,EAAOmH,EAAGmI,QAIZ,SAAS8L,EAAWrG,EAAM4E,EAAMrR,GAIvB,SAHCyM,EAIJhW,OAAOsc,KAAK1B,EAAMrR,GAAU,OAAO,EAKnCvJ,OAAOuc,SAAS3B,KAAOA,CAG7B,CAEA,SAAS4B,EAAcxN,EAAIgH,EAAMyG,GAC/B,IAEIC,EAFJ,MAAa,SAAT1G,EAIK,CACL4E,MAHA8B,EAAQ/B,EADNgC,EAAStc,EAAE2O,EAAGuL,IAAI,EAAEzN,KAAK,MAAM,CACF,GAGjB6P,EAAS3N,EAAG4L,KAC1BrR,OAAQmT,EAAQrc,EAAE2O,EAAGuL,IAAI,EAAEzN,KAAK,QAAQ,EAAIkC,EAAG4N,UACjD,EAGK,CACLhC,KAAM6B,CACR,CACF,CAEA,SAASI,EAAU7N,GACjB,IAAIzF,EAYJ,GAXA2S,EACElN,EAAG/L,aAAa,IAAM+L,EAAG9L,eAAe,GAAK,CAAC8L,EAAG8B,WAAW,GAG5DmL,EADEC,EACkB,CAAClN,EAAG8B,WAAW,EAEf9B,EAAG8B,WAAW,EAGpCkL,EAAc9Z,EAAE6K,aAAa9L,EAAM+N,EAAG/B,GAAG,EAErC9B,EAAE5I,WAAWtB,EAAK+D,OAAO,IAC3BmX,EAAWlb,EAAK+D,QAAQjD,KAAKgJ,EAAM,CACjCxJ,EAAGA,EACHub,WAAYd,EACZ/O,IAAK+B,EAAG/B,IACR5G,SAAU4V,CACZ,CAAC,EAEG9Q,EAAEP,OAAOuR,CAAQ,GAAG,CACtB,GAAI,CAACA,EACH,OAOF,GAAIxB,GALJpR,EAASiT,EACPxN,EACA/N,EAAKmD,aACL/D,EAAE2O,EAAGuL,IAAI,EAAEzN,KAAK,MAAM,CACxB,GAC4B8N,IAAI,EAE9B,OADAyB,KAAAA,EAAWpb,EAAKmD,aAAcmF,EAAOqR,KAAMrR,EAAOA,MAAM,CAG5D,CAGE2S,GACFlN,EAAGiD,OAAO,CAEd,CAEA4I,EAAU9Y,KAAK3B,KAAMmB,CAAC,EAEtBwb,EAAaP,EAAcxN,EAAI/N,EAAKmD,aAAc4K,EAAG4L,IAAI,EACrD3Z,EAAKkD,eAAiBwW,EAAiBoC,EAAWnC,IAAI,EACxDyB,EAAWpb,EAAKmD,aAAc2Y,EAAWnC,KAAMmC,EAAWxT,MAAM,EAI9DyF,GAAM,CAACA,EAAGsI,MAAMxJ,gBAClB7M,EAAOmH,EAAGmI,QACVsM,EAAU7N,CAAE,GACZoN,EAAWpN,EAAGgE,iBAAiB,GAClBlP,eACXoJ,EAAO/B,EAAExC,MAAMyT,EAAStY,WAAW,EACnCzD,EAAEG,KAAK0M,EAAM,SAAUzM,EAAGc,GACpByN,EAAK5G,EAAGoI,cAAcjP,EAAE6Q,SAAS,CAAC,EACjCpD,EAAGuB,QAAQhK,QACdsW,EAAU7N,CAAE,CAEhB,CAAC,EAGP,EAoCUjN,KAAK3B,KAAMgI,EAAI7G,CAAC,CACxB,EACA6G,EAAGsT,aAAe,SAAUna,GAC1Bma,CAxKJ,SAAsBtT,GACpB,IAAInH,EAAOmH,EAAGmI,QAEdnI,EAAG6I,kBAAkB,EAGnBhQ,EAAK+b,cAC4C,GAAjD3c,EAAEyJ,QAAQ,gBAAiB7I,EAAK+b,YAAY,GAC5C5U,EAAG6U,eAEH7U,EAAG8U,aAAa,CAEpB,EA4JiBnb,KAAK3B,KAAMgI,EAAI7G,CAAC,CAC/B,EACA6G,EAAGyS,UAAY,SAAUtZ,GACvBsZ,EAAU9Y,KAAK3B,KAAMmB,CAAC,CACxB,CACF,EAEAW,EAAEyR,QAAQjR,UAAY,CACpB8F,YAAatG,EAAEyR,QAQfjB,iBAAkB,SAAUnC,GAC1BnQ,KAAKmQ,QAAUpF,EAAE/B,YAAY,GAAIlH,EAAEgC,SAAUqM,CAAO,CACtD,EAOAoC,WAAY,WACV,IA/XE1R,EACFkc,EA8XI/U,EAAKhI,KACP+c,EAAK/U,EAAG+P,OAeV,OAXgB,EAAZgF,EAAGlU,OACLkU,EAAGhU,OAAO,CAAC,EACY,IAAdgU,EAAGlU,SAEZkU,EAAG/P,IAAIhF,EAAG6C,KAAK,EAEfkS,EAAG/P,IAAIhF,EAAG6C,MAAMrB,GAAG,GA1YnB3I,GADsBmH,EA8YLA,GA7YPmI,QACZ4M,EAAK/U,EAAG+P,OAINjW,EAAE4E,UAAU,IAGdzG,EAAEG,KAAKS,EAAKgD,WAAa,GAAI,SAAU+E,EAAGzH,GACxC4b,EAAG/P,IAAI7L,EAAGyH,CAAC,CACb,CAAC,EAID3I,EAAEG,KAAK,CAACS,GAAMwQ,OAAOxQ,EAAK+E,KAAK,EAAG,SAAUvF,EAAGc,GAC7ClB,EAAEG,KAzBC,CAyBoBe,EAAAA,EAzBV2E,iBAyBU3E,EAzBY4E,eAyBR,SAAU1F,EAAG2c,GAClCA,GAAMA,EAAGrZ,WACXqZ,EAAGpZ,WAAamZ,EAAG/P,IAAIgQ,EAAGrZ,QAAQ,EAEtC,CAAC,CACH,CAAC,GAIHqE,EAAGuI,aAAexF,EAAE/B,YAClB,GACAlH,EAAEoE,cACFrF,CACF,EAmXSmH,EAAG+P,OAAOrV,KAAK,CACxB,EAOAua,SAAU,WACR,MAAO,CAACjd,KAAKsL,UAAYtL,KAAK0N,aAChC,EASAyF,MAAO,WACL,MAAO,CACL7H,SAAUtL,KAAKsL,SACf4R,SAAiC,aAAvBld,KAAK0N,cACfyP,OAAQnd,KAAKmd,OACbC,WAAYpd,KAAKod,WACjBjG,UAAWnX,KAAKmX,SAClB,CACF,EAOAkG,OAAQ,WACN,MAAO,gBAAkBrd,KAAKgM,KAChC,EACAsR,uBAAwB,WACtB,MAAO,YAActd,KAAKqd,OAAO,CACnC,EACAE,WAAY,SAAU1Q,GACpB,MAAsB,UAAf,OAAOA,GACZ/L,OAAOwB,UAAUkb,eAAe7b,KAAK3B,KAAK+a,MAAOlO,CAAG,EAClD7M,KAAK+a,MAAMlO,GACX,CAAC,CACP,EAOA4D,YAAa,WACX,IAAIpG,EAAS,GAMb,OALApK,EAAEG,KAAKJ,KAAK2O,KAAM,SAAUtO,EAAGc,GACzBA,EAAEuP,WAAW,IACfrG,IAAWA,EAAS,IAAM,IAAMrK,KAAK6M,IAEzC,CAAC,EACMxC,CACT,EASA+Q,kBAAmB,SAAUjB,EAAMsD,GACjC,IAAI7U,EACFgG,EACAvE,EAEAwC,EAAM5M,EAAEka,CAAI,EAAEpI,OAAO,MAAM,EAAErF,KADxB1M,KACgCmQ,QAAQ7L,MAAM,EAErD,GAAIuI,EAIF,IAHAxC,EAAS,GACTwC,EAAM9B,EAAExC,MAAMsE,CAAG,EAEZjE,EAAI,EAAGA,GAAK6U,GAAU5Q,EAAIhE,QAASD,CAAC,IACvCgG,EARG5O,KAQK2O,KARL3O,KAQaud,WAAW1Q,EAAIjE,EAAE,MAE/BgG,EAAGuL,KAAOA,EAAKtR,OAASsR,EAAK,GAAKA,EAIlC9P,EAAOtD,KAAK6H,CAAE,GAKpB,OAAOvE,CACT,EACA6G,eAAgB,SAAUiJ,GACpBvL,EAAK5O,KAAKob,kBAAkBjB,EAAM,CAAC,EACvC,OAAOvL,GAAKA,EAAG,IAAa,IAC9B,EACAwB,cAAe,SAAUvD,GACvB,OAAO7M,KAAK2O,KAAK3O,KAAKud,WAAW1Q,CAAG,EACtC,EAUAoE,gBAAiB,SAAUpE,GACrB+B,EAAK5O,KAAKoQ,cAAcvD,CAAG,EAE/B,OAAQ+B,EAEJA,EAAG8O,UACH9O,EAAG/B,IACH7M,KAAK2d,0BAA0B/O,EAAGhJ,MAAM,CAAC,EAAEuL,KAAK,GAAG,EAHnD,EAIN,EAQAwM,0BAA2B,SAAU/X,GACnC,IAAIkL,EAAO,GAMX,OALA7Q,EAAEG,KAAKwF,EAAO,SAAUvF,EAAGc,GACrBlB,EAAEyJ,QAAQvI,EAAE2P,KAAK,GAAIA,CAAI,EAAI,GAC/BA,EAAK/J,KAAK5F,EAAE2P,KAAK,EAAE,CAEvB,CAAC,EACMA,CACT,EACA/B,QAAS,SAAUzG,GACjB,MAAmB,UAAf,OAAOA,EACFtI,KAAKoQ,cAAc9H,CAAG,EACnBA,GAAOA,EAAIvG,SAAYgJ,EAAElB,UAAUvB,CAAG,EACzCtI,KAAKkR,eAAe5I,CAAG,EAEvB,IAEX,EAEAuI,kBAAmB,WAEO,GAApB7Q,KAAK4Q,cACP5Q,KAAK8S,SAASoF,eAAe,EACxBlY,KAAK2O,KAAK3O,KAAK4Q,aACjBgN,YAAY,YAAa,CAAA,CAAK,EACjC5d,KAAK6d,eAAe,CAAC,CAAC,EAE1B,EACAA,eAAgB,SAAU1Q,GACxBnN,KAAK4Q,YAAczD,CACrB,EAMA2Q,gBAAiB,WACf7d,EAAEG,KAAKJ,KAAK2O,KAAM,SAAUtO,EAAGc,GACzBA,EAAE8E,UACJ9E,EAAEqQ,SAAS,CAAA,CAAI,CAEnB,CAAC,EACDxR,KAAK8R,sBAAsB,CAC7B,EAQAiM,eAAgB,SAAUnY,GAMxB,IALA,IAAO2K,EAAc3B,EAKhBhG,GAJLhD,EAAQA,GAAS,IAIFiD,OAAS,EAAQ,GAALD,EAAQA,CAAC,IAClC2H,EAAe3K,EAAMgD,MAEnBgG,EAAK5O,KAAKoQ,cAAcG,EAAa1D,GAAG,KAEtC9B,EAAE/B,YAAY4F,EAAGuB,QAASI,CAAY,EAKlCxF,EAAEP,OAAO+F,EAAatK,QAAQ,KAChC2I,EAAG3I,SAAWsK,EAAatK,SAKrC,EAEA+X,eAAgB,SAAUlN,GAIxB,IAHA,IACEmN,EAAUlT,EAAE1C,QAAQyI,CAAI,EAErBlI,EAAIqV,EAAQpV,OAAS,EAAQ,GAALD,EAAQA,CAAC,GACpC5I,KAAK2O,KAAKsP,EAAQrV,IAAIsV,cAAc,CAExC,EACA5F,iBAAkB,WAChBrY,EAAEG,KAAKJ,KAAK2O,KAAM,SAAUtO,EAAGc,GACzBA,EAAEgd,mBAAmB,GACvBhd,EAAE+c,cAAc,CAEpB,CAAC,CACH,EAKAE,uBAAwB,SAAUvd,EAAMsI,EAAQlD,GAC9CkD,EAAO/I,KAAK,SAAUC,EAAGc,GACnBN,EAAK8D,oBACHsB,EACFhG,EAAEkB,CAAC,EAAEuU,SAAS7U,EAAK8D,iBAAiB,EAEpC1E,EAAEkB,CAAC,EAAEkd,YAAYxd,EAAK8D,iBAAiB,GAGvC9D,EAAK6D,uBACPzE,EAAEkB,CAAC,EAAEoI,KAAK1I,EAAK6D,sBAAuBuB,CAAQ,CAElD,CAAC,CACH,EACAqY,yBAA0B,SAAUzd,GAE7BA,EAAKoE,WADDjF,KAINoe,uBAAuBvd,EAAMA,EAAKoE,UAAW,CAAA,CAAK,CACvD,EACAsZ,iBAAkB,SAAU1d,GACjBb,KACNse,yBAAyBzd,CAAI,EADvBb,KAENoe,uBACDvd,EACAiB,EAAE6K,aAAa9L,EAJRb,KAIiByQ,YAAY,CAAC,EACrC,CAAA,CACF,CACF,EACA+N,aAAc,SAAU3d,GACtB,IAEE4d,EADAC,EADO1e,KACU2O,KAAKpM,MAAM,CAAC,EAE3B1B,EAAKuD,WAELqa,EADoB,SAAlB5d,EAAKuD,SACK,SAAU+K,EAAGE,GACvB,OAAOF,IAAME,EAAI,EAAQA,EAAJF,EAAQ,CAAC,EAAI,CACpC,EAEY,SAAUA,EAAGE,GACvB,OAAOF,IAAME,EAAI,EAAIF,EAAIE,EAAI,CAAC,EAAI,CACpC,EAGFqP,EAAYC,KAAK,SAAUxP,EAAGE,GAG5B,OAFAF,EAAIA,EAAEwE,MACNtE,EAAIA,EAAEsE,MACC8K,EAAUtP,EAAGE,CAAC,CACvB,CAAC,GAlBMrP,KAoBNmQ,QAAQlL,UAAYpE,EAAKsD,UAAUxC,KApB7B3B,KAoBqC6K,MAAO6T,CAAW,CAClE,EAEAlL,WAAY,WACV,IACER,EACA+C,EACA6I,EAEAlT,EACA9C,EACAgC,EACAsC,EACA2R,EACA7W,EAAKhI,KACLa,EAAOmH,EAAGmI,QAEZ,GAAInI,CAAAA,EAAGsD,SAAP,CAyFA,KAnFAwT,GAFA5R,EAAMjN,EAAE+H,EAAG6C,KAAK,GAEDwC,OAAO,EAAEX,KAAK,IAAI,IAMZ,IAAnBoS,EAASjW,QACqB,iBAA9BiW,EAASC,UAAU,EAAG,EAAE,GAExBH,EAAO1R,EAAIG,OAAO,GACbX,KAAK,KAAM1E,EAAGqV,OAAO,CAAC,GAE3BuB,EAAO3e,EAAE,YAAc+H,EAAGqV,OAAO,EAAI,UAAU,EAE3Cxc,EAAKoD,YACgB,CAAA,IAAnBpD,EAAKoD,UACP2a,EAAKlJ,SAASxI,EAAI,GAAG8R,SAAS,EAE9BJ,EAAKlJ,SAAS7U,EAAKoD,SAAS,IAIlC+D,EAAGiX,QAAUL,EAOb5W,EAAGmP,UAAY0H,EAAQ9T,EAAE1F,SACvB2C,EAAG+P,OAAO,GACV/P,EAAG+P,OAAO,GACVlX,EAAKwE,QACP,EAEA2C,EAAGgL,YAAcA,EAAchL,EAAG8K,SAASG,oBAAoBjL,CAAE,EACjEA,EAAG+N,eAAiBA,EAAiB/N,EAAG8K,SAASG,oBAAoBjL,CAAE,EAGvEkX,EAAUjf,EAAE+H,EAAG+P,OAAO,EAAE,EACrBrC,SAAS,cAAgB1N,EAAG+P,OAAO,GAAGiH,SAAS,EAC/CtS,KAAK,CAAES,GAAI,KAAMkG,OAAQ,IAAK,CAAC,GAElCzI,EAAOG,EAAEH,KAAK5C,EAAG+P,OAAO,EAAE,GAEjBzM,UACP4T,EAAQxT,IAAI,CACVV,MAAOJ,EAAKI,MACZG,OAAQP,EAAKO,MACf,CAAC,EAGHnD,EAAGwK,aAAa,EAIhB9G,EAAMzL,EAAE2J,OACN,CACEuV,QAAS,QACT9Y,SAAU,WACVG,QAAS,CACX,EACiC,CAAA,IAAjC3F,EAAKyE,wBACD,GACA,CACE0F,MAAO6T,EAAM7T,MACbG,OAAQ0T,EAAM1T,MAChB,CACN,EAEItK,EAAKqD,SACPjE,EAAE2J,OAAO8B,EAAK7K,EAAKqD,OAAO,EAGxBgJ,EAAIG,OAAO,EAAE,KAAOrF,EAAGiX,QAAQ,IACjC/R,EAAIgG,OAAOlL,EAAGiX,OAAO,EAGvBL,EAAKlT,IAAIA,CAAG,EAIZzL,EAAE+H,EAAG+P,OAAOxV,MAAM,CAAC,CAAC,EAAE8V,KAAK,EACtBzP,EAAI,EAAGA,EAAIZ,EAAG+P,OAAOlP,OAAQD,CAAC,GACjCgW,EAAKhG,OAAO5Q,EAAG+P,OAAOnP,EAAE,EAK1BgW,EACGhG,OAAO5F,CAAW,EAClB4F,OAAO7C,CAAc,EACrB6C,OAAO1L,EAAIxB,IAAI5J,EAAEsE,YAAY,CAAC,EAIjC2E,EAAEQ,WAAWvD,EAAG+P,OAAO,GAAI,CAAC,EAC5B9X,EAAE+H,EAAG+P,OAAO,EAAE,EAAEQ,KAAK,EAErBxN,EAAEQ,WAAWvD,EAAG+P,OAAO,GAAI,CAAC,EAE5B/P,EAAGsD,SAAW,CAAA,EACdtD,EAAGoX,oBAAoB,EAEc,CAAA,IAAjCve,EAAKyE,yBACP0C,EAAGqX,oBAAoB,EAGzBrX,EAAG9C,aAAa,CAhHhB,CAiHF,EAEAA,aAAc,WACZ,IACEoa,EAAOrf,EADAD,KACK6K,KAAK,EACjBhK,EAFOb,KAEGmQ,QAERtP,EAAKqE,cAA6C,YAA7B,OAAOrE,EAAKqE,cACnCrE,EAAKqE,aAAavD,KAAK2d,EAAM,CAAA,CAAI,CAErC,EAGA9M,aAAc,SAAUH,GACtB,IAAIkN,EACF3Z,EACA4Z,EACAvG,EACAwG,EAEAC,EACAnK,EACA1I,EACAiE,EACA6O,EACAC,EACAC,EACArF,EAGAsF,EAFA9X,EAAKhI,KACLa,EAAOmH,EAAGmI,QAGZ,SAAS4P,EAAYlT,EAAK8G,GACpBkM,EAAW,IAAI/d,EAAEke,SAAShY,EAAI6E,EAAK8G,CAAK,EAE5C,OADAkM,EAAS/J,OAAS9N,EAAG+S,MAAMlO,GAAO7E,EAAG2G,KAAK5H,KAAK8Y,CAAQ,EAAI,EACpDA,EAAS/J,MAClB,CAwBA,IAtBA9N,EAAG+S,MAAQ,GACX/S,EAAG2G,KAAO,GACL0D,IACHrK,EAAG8S,SAAW,KAGhBgF,EAAgB,CAACjf,EAAKyD,UAEpBzD,EAAKyD,OAAS,oBAMhBib,EAAMzd,EAAEoN,OAAO,EACX,OACA4Q,EACA,eACA,QAAUjf,EAAKyD,OAAS,IAE5BsB,EAAQ3F,EAAE+H,EAAGoL,GAAG,EAAE6C,KAAKsJ,CAAG,EAAE1R,IAAI,UAAU,EAErC8R,EAAY,EAAGA,EAAY/Z,EAAMiD,OAAQ8W,CAAS,GAMrD,GALA1G,EAAU,EACVkB,EAAOvU,EAAM+Z,GACbF,EAAQxf,EAAEka,CAAI,EAGTA,EAAK9D,OAAV,CA2BA,IAtBIyJ,GACFJ,EAASO,OAAON,CAAS,EACzBF,EAAM/S,KAAK,mBAAoBgT,CAAM,GAErCA,EAASvF,EAAK7G,aAAazS,EAAKyD,MAAM,EAMpC+N,IACFkD,EAAUvN,EAAG8S,SAAS2E,EAAM9Q,KAAK,SAAS,EAAI,IACtCuR,UAAUR,CAAM,EACxBnK,EAAQ4K,aAAe,KAEvB5K,EAAU,IAAIzT,EAAEse,QAAQpY,EAAImS,EAAMuF,CAAM,EACxC1X,EAAG8S,SAAS/T,KAAKwO,CAAO,GAMrBiK,GAHL1O,EAAOyE,EAAQzE,MAGDjI,OAAS,EAAQ,GAAL2W,EAAQA,CAAC,GACjC3S,EAAMiE,EAAK0O,GAEP3e,EAAK0D,WACPqb,EAAcH,EAAM/S,KAAK7L,EAAK0D,QAAQ,GAEpCub,GAEF7G,EAAU8G,EAAY/X,EAAG2G,KAAK9F,OAAQ+W,CAAW,GACjDC,EAAW7X,EAAG2G,KAAKsK,IACVpM,IAAMA,EAAMoM,EAAQjH,SAAS,GAGvB,IADfiH,EAAUjR,EAAG+S,MAAMlO,KAEjBgT,EAAW7X,EAAG2G,KAAKsK,GACf2G,GAAe,CAAC5X,EAAG2G,KAAKsK,GAAStF,QACnCkM,EAASlM,MAAQiM,KAGnB3G,EAAU8G,EAAYlT,EAAK+S,CAAW,GACtCC,EAAW7X,EAAG2G,KAAKsK,IACVyE,UAAkB,IAAN8B,GAGzBjK,EAAQ4K,aAAapZ,KAAKkS,CAAO,EACjC4G,EAASQ,UAAUtZ,KAAK4Y,CAAS,EAI/BpF,EADJC,EAAOiF,EAAM/S,KAAK,MAAM,CACC,GAAK,CAACmT,EAASrF,OACtCqF,EAASrF,KAAOA,EAChBqF,EAASrD,WAAaiD,EAAM/S,KAAK,QAAQ,GAGtC6I,EAAQlB,QACXoL,EACGlG,GAAG,gBAAiBvR,EAAG2T,KAAK,EAC5BpC,GACC,wDACAvR,EAAGkT,SACL,EACC3B,GACC,qDACAvR,EAAGyT,QACL,EACClC,GAAG,oBAAqBvR,EAAGyS,SAAS,EAIzCgF,EAAM9Q,KAAK,UAAWgR,EAAY,CAAC,CA1EnC,CAmFF3X,EAAG+V,eAAeld,EAAK+E,KAAK,EACxB/E,EAAKsD,WACP6D,EAAGwW,aAAa3d,CAAI,EAGlBA,EAAKoE,WAAqC,EAAxBpE,EAAKoE,UAAU4D,QACnCb,EAAGuW,iBAAiB1d,CAAI,EAGtBwR,GACFrK,EAAG8K,SAASkG,iBAAiB,EAC7BhR,EAAG8K,SAASqF,kBAAkB,GAE9BnQ,EAAGsQ,iBAAiB,CAExB,EACA8G,oBAAqB,WAGnB,IAFA,IAAIkB,EAEG,CADAtgB,KACI0N,eADJ1N,KACwB2N,SAAS9E,QACtCyX,EAFKtgB,KAEI2N,SAAS,GAFb3N,KAGF2N,SAAS5E,OAAO,EAAG,CAAC,EACvBjH,EAAEG,KAAKqe,EAAI7S,SAASrL,MAAMke,EAAI3V,KAAM2V,EAAIrY,IAAI,CAEhD,EACAkK,YAAa,WACXlS,EAAED,KAAKoT,GAAG,EAAE6C,KAAK,MAAM,EAAEpI,IAAI,UAAU,EACvC5N,EAAED,KAAK+X,MAAM,EAAElK,IAAI,UAAU,EAC7B5N,EAAEL,MAAM,EAAEiO,IAAI7N,KAAKsd,uBAAuB,CAAC,EAC3Crd,EAAEL,OAAOiQ,QAAQ,EAAEhC,IAAI7N,KAAKsd,uBAAuB,CAAC,CACtD,EACAiD,eAAgB,SAAUrO,GAEnBA,GACHjS,EAAED,KAAKgT,WAAW,EAAErD,OAAO,EAE7B1P,EAAED,KAAK+V,cAAc,EAAEpG,OAAO,CAChC,EACAyC,aAAc,SAAUF,GAEtBlS,KAAKugB,eAAerO,CAAa,EAGjCjS,EAAEG,KAAKJ,KAAK2O,KAAM,SAAUtO,EAAGc,GAC7BA,EAAEqf,MAAM,CACV,CAAC,EACDxgB,KAAK2O,KAAO,KACPuD,IAEHlS,KAAK6K,MAAMY,MAAMoP,QAAU7a,KAAK4a,WAChC3a,EAAED,KAAKif,OAAO,EAAE/L,OAAOlT,KAAK6K,KAAK,EAAE8E,OAAO,GAXnC3P,KAcN+X,OAAOoB,MAAM,EAdPnZ,KAgBFib,iBACLjB,aAjBOha,KAiBSib,eAAe,EAjBxBjb,KAmBNib,gBAAkB,KACrBjb,KAAK6K,MAAQ,KACbE,EAAEL,WAAW1K,KAAK8c,aAAc9c,IAAI,CACtC,EAKA8R,sBAAuB,WACrB,IAAI2O,EAAIzgB,KAAK8S,SAEb2N,EAAEtI,kBAAkB,EAEpBsI,EAAEvI,eAAe,CACnB,CACF,CACD,EAAExY,MAAM,EAMT,CAAA,SAAWO,GACT,aAEA,IAAI6B,EAAI7B,EAAE8B,QACRgJ,EAAIjJ,EAAEI,MA+IR,SAASwe,EAASpU,GACZmT,EAAQxf,EAAEqM,CAAM,EACpB,OAAOvB,EAAEyB,aAAaiT,EAAO,QAAQ,GAAK,CAAC1U,EAAEyB,aAAaiT,EAAO,MAAM,CACzE,CAWA3d,EAAEke,SAAW,SAAU9I,EAAOrK,EAAK8G,GACjC1T,EAAE2J,OAAO5J,KAAM,CACbkX,MAAOA,EACPrK,IAAKA,GAAO,GAEZ6Q,UAAW,CAAA,EACX5H,OAAQ,CAAC,EACT0E,KAAM,GACNgC,WAAY,KACZ7I,MAAOA,GAAS,GAChBxD,QAAS,GAETlK,SAAU,KAEV0a,sBAAuB,CAAA,EAEvBN,UAAW,GAEXlG,KAAM,KAGNyG,UAAW,IACb,CAAC,CACH,EAMA9e,EAAEke,SAAS1d,UAAY,CACrBue,WAAY/e,EAAEke,SACd1O,OAzJF,SAAgBnB,GAQd,IAAInI,EAAKhI,KACP8J,EAAI9B,EAAGkP,MAEP4J,GAAeC,EADF,CAAC9gB,EAAEoJ,cAAc8G,CAAO,GAP9BlQ,EAAE2J,OAAO5B,EAAG6N,uBAAuB,QAAQ,EAAG1F,EAAS,CAC5DvM,WAAYkG,EAAEiO,OAAO/K,IAAImD,EAAQxM,QAAQ,CAC3C,CAAC,EAM4C,KAI7Cqd,EAAgBD,GACZ,EAAc/Y,EAAG4Y,YAAWE,GAGhCG,EAAUjZ,EAAGmW,mBAAmB,EAM9BrU,EAAEqG,QAAQ3L,eACZsF,EAAEgU,gBAAgB,EAElBmD,EAAUjZ,EAAGmW,mBAAmB,GAG9B6C,IACFhZ,EAAG4Y,UAAYE,GAQjBI,EAAqBlZ,EAAGmZ,eAAe,CAAA,CAAI,EAEvCF,GAAWD,GAMblX,EAAEgJ,SAASkG,iBAAiBhR,EAAG8N,MAAM,EACrChM,EAAEgJ,SAASqF,kBAAkB,GACnB8I,GACVjZ,EAAGkW,cAAc,EAIfgD,GACFlZ,EAAG4V,YAAY,SAAU,CAAA,CAAI,CAEjC,EAgGEpM,SAvFF,SAAkB4P,GAChB,IAAIpZ,EAAKhI,KAOTkhB,EAAqBlZ,EAAGmZ,eAAe,CAAA,CAAK,EAG5CnZ,EAAG4Y,UAAY,KACf5Y,EAAGkP,MAAMpE,SAASkG,iBAAiBhR,EAAG8N,MAAM,EAIvCsL,GACHpZ,EAAGkP,MAAMpF,sBAAsB,EAI7BoP,GACFlZ,EAAG4V,YAAY,SAAU,CAAA,CAAK,CAElC,EAgEE/L,OAzDF,SAAgB1B,GAOd,OANSnQ,KACD0Q,WAAW,EADV1Q,KAIJwR,SAAS,EAJLxR,KAEJsR,OAAOnB,CAAO,EAFVnQ,KAMC0Q,WAAW,CACvB,EAkDEyQ,eA9KF,SAAwBlb,GACtB,IACEob,EADOrhB,KACWiG,SAOpB,OARSjG,KAGNiG,SAAWA,EAHLjG,KAIN2gB,sBAAwB5V,CAAAA,CAAAA,EAAEP,OAJpBxK,KAI8B4S,iBAAiB,EAAE5M,WAAW,EAI9Dqb,IAAiBpb,CAC1B,EAqKEL,MAAO,WAGL,IAFA,IACEyE,EAAS,GACNzB,EAAI,EAAGA,EAAI5I,KAAKqgB,UAAUxX,OAAQD,CAAC,GACtCyB,EAAOtD,KAAK/G,KAAKkX,MAAM4D,SAAS9a,KAAKqgB,UAAUzX,GAAG,EAEpD,OAAOyB,CACT,EAEAgM,OAAQ,SAAUD,GAChB,IAAIC,EAAS,GAIb,OAHApW,EAAEG,KAAKJ,KAAK4F,MAAM,EAAG,SAAUvF,EAAGqI,GAChC2N,EAASA,EAAOhF,OAAO3I,EAAG2N,OAAOD,CAAM,CAAC,CAC1C,CAAC,EACMC,CACT,EACAmK,MAAO,WACLvgB,EAAEG,KAAKJ,KAAK4F,MAAM,EAAG,SAAUvF,EAAGc,GAChCA,EAAEqf,MAAM,CACV,CAAC,EACDxgB,KAAKqgB,UAAY,GACjBrgB,KAAKmQ,QAAU,IACjB,EAEAgO,mBAAoB,WAClB,IAAIrU,EAAI9J,KAAK4S,iBAAiB,EAC9B,MAAO,CAAC7H,EAAEP,OAAOV,EAAE9D,WAAW,GAAKhG,KAAK2gB,sBACpC3gB,KAAK0Q,WAAW,EAChB5G,EAAE9D,WACR,EACA0K,WAAY,WACV,OAAO3F,EAAEP,OAAOxK,KAAKiG,QAAQ,EACzBjG,KAAKiG,SACL8E,CAAAA,CAAAA,EAAEP,OAAOxK,KAAKkX,MAAM3G,aAAatK,QAAQ,GACzCjG,KAAKkX,MAAM3G,aAAatK,QAE9B,EACApD,aAAc,WACZ,MAAOkI,CAAAA,EAAEP,OAAOxK,KAAK4S,iBAAiB,EAAE5M,WAAW,GAE/C+E,CAAAA,EAAEP,OAAOxK,KAAKkX,MAAM/G,QAAQnK,WAAW,GAEvC+E,EAAET,cAActK,KAAK4S,iBAAiB,EAAE/P,aAAc,CAAA,CAAI,CAChE,EACAC,eAAgB,WACd,MAAOiI,CAAAA,EAAEP,OAAOxK,KAAK4S,iBAAiB,EAAE5M,WAAW,GAE/C+E,CAAAA,EAAEP,OAAOxK,KAAKkX,MAAM/G,QAAQnK,WAAW,GAEvC+E,EAAET,cAActK,KAAK4S,iBAAiB,EAAE9P,eAAgB,CAAA,CAAI,CAClE,EACAuY,cAAe,WACb,OAAOqF,EAAS1gB,KAAKma,IAAI,GAAKna,KAAK4S,iBAAiB,EAAEzM,MACxD,EAUAyM,iBAAkB,SAAUzC,GACtBtP,EAAOkK,EAAE/B,YACX,GACAhJ,KAAKkX,MAAM3G,aACXvQ,KAAKmQ,QACLA,GAAW,GACX,CACEhD,GAAInN,KAAK8V,MACX,CACF,EAIA,OAFAjV,EAAKoF,SAAWjG,KAAK0Q,WAAW,EAEzB7P,CACT,EAWAgV,uBAAwB,SAAUD,EAAMzF,GACtC,IACEtP,EAAOb,KAAK4gB,UAUd,OARK/f,GAAiB,cAAT+U,IACX0L,EAAUthB,KAAK4S,iBAAiBzC,CAAO,EACvCtP,EAAOkK,EAAE/B,YAAY,GAAIsY,EAASA,EAAQ,UAAY1L,EAAK,EAE9C,cAATA,IACF5V,KAAK4gB,UAAY/f,IAGdZ,EAAE2J,OAAO,GAAI/I,CAAI,CAC1B,EAGA+c,YAAa,SAAU2D,EAAYpO,GAC7BpI,EAAE5I,WAAWnC,KAAKkX,MAAM/G,QAAQnL,aAAa,GAC/ChF,KAAKkX,MAAM/G,QAAQnL,cAAcrD,KAAK3B,KAAKkX,MAAMrM,MAAO,CACtDgC,IAAK7M,KAAK6M,IACVsG,MAAOoO,EACPtb,SAAUkN,CACZ,CAAC,EAEgB,WAAfoO,GAA2BvhB,KAAKkX,MAAM/G,QAAQlL,WAChDjF,KAAKkX,MAAMkH,uBACTpe,KAAKkX,MAAM/G,QACXrO,EAAE6K,aAAa3M,KAAKkX,MAAM/G,QAASnQ,KAAK6M,GAAG,EAC3CsG,CACF,CAEJ,EAIA9P,UAAW,SAAU8M,GACnB,IAAIrG,EAAI9J,KAAKkX,MACbpN,EAAE+G,kBAAkB,EAChB7Q,KAAK4S,iBAAiB,EAAEvP,WAC1ByG,EAAEgJ,SAAS6C,cAAc3V,KAAM,YAAamQ,CAAO,EAErDrG,EAAE+T,eAAe7d,KAAK8V,MAAM,EAC5B9V,KAAK4d,YAAY,YAAa,CAAA,CAAI,CACpC,EAKAM,cAAe,WACble,KAAKkX,MAAMpE,SAAS6C,cAAc3V,KAAM,QAAQ,CAClD,CACF,EAEA8B,EAAEse,QAAU,SAAUlJ,EAAO5K,EAAQwE,GACnC,IAGI9I,EAHCkP,KAGDlP,EAAKhI,MACNkX,MAAQA,EACXlP,EAAGmS,KAAO7N,EACVtE,EAAGmY,aAAe,GAClBnY,EAAGwZ,eAAiB,GACpBvhB,EAAEG,KAAK2K,EAAExC,MAAM+D,EAAO+J,MAAM,EAAG,SAAUhW,EAAGqI,GAC1CV,EAAGwZ,eAAeza,KAAK0a,WAAW/Y,CAAE,CAAC,CACvC,CAAC,EACDV,EAAGa,OAASb,EAAGwZ,eAAe3Y,OAC9Bb,EAAGuE,MAAQxB,EAAEsB,SAASC,CAAM,EAC5BtE,EAAGqM,OAASqM,EAASpU,CAAM,EAC3BtE,EAAGkY,UAAUpP,CAAI,EACnB,EACAhP,EAAEse,QAAQ9d,UAAY,CACpB8F,YAAatG,EAAEse,QACfF,UAAW,SAAUpP,GACnB9Q,KAAK8Q,KAAO/F,EAAExC,MAAMuI,CAAI,CAC1B,EACA0P,MAAO,WACLxgB,KAAKma,KAAO,IACd,EACA9D,OAAQ,SAAUD,GAChB,OAAOnW,EAAEmT,IAAIpT,KAAKwhB,eAAgB,SAAUrgB,GAC1C,OAAOiV,EAASjV,EAAIA,EAAIiV,CAC1B,CAAC,CACH,CACF,CACD,EAAE1W,MAAM,EAMT,CAAA,SAAWO,GACT,aAEA,IAAI8K,EAAI9K,EAAE8B,QAAQG,MAYlB6I,EAAE2W,YAAc,SAAUxV,EAAUrB,EAAO8W,EAAW3W,EAAOG,GAC3D,IAAIyW,EACFC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAhD,EAGAiD,EACAC,EACAC,EACAC,EACAC,EACAna,EAPAoa,EAAU,EACVC,EAAU,EAOV1M,EAAS,GA2BX,IAvBAnK,EAAWA,EAASrD,OAASqD,EAAW,CAACA,GAMzC0V,GAJAD,EAAwB1hB,EAAZ0hB,GAA6B9R,SAASmT,IAAf,GAInB5M,OAAO,EACvBqM,EAAQb,EAAItb,KACZoc,EAAQd,EAAIrb,IAMRsE,IAEFiY,GADAlB,EAAM3hB,EAAE4K,CAAK,EAAEuL,OAAO,GACR9P,KACdyc,EAAUnB,EAAIrb,KAMXiZ,EAAI,EAAGA,EAAItT,EAASrD,OAAQ2W,CAAC,GAEhC,GAAoB,UADpB9W,EAAKwD,EAASsT,IACPvV,SAAqB,CAG1B,OAFA0Y,EAAU5X,EAAExC,MAAMG,EAAG2N,OAAQzB,QAAQ,EAE7B7J,EAAEsB,SAAS3D,CAAE,GACnB,IAAK,SACL,IAAK,OAKH,IAJA4Z,EAAOK,EAAQ,GACfJ,EAAOI,EAAQ,GACfC,EAASD,EAAQ,GACjBtM,EAAS,GACJmJ,EAAI,EAAGA,EAAI,IAAKA,GAAK,GACxBqD,EAASrD,EAAI/K,KAAKiC,GAAM,IACxBL,EAAOtP,KACLub,EAAOM,EAASnO,KAAKwO,IAAIJ,CAAK,EAC9BN,EAAOK,EAASnO,KAAKyO,IAAIL,CAAK,CAChC,EAEF,MACF,IAAK,YACL,IAAK,OACHxM,EAAOtP,KACL4b,EAAQ,GACRA,EAAQ,GACRA,EAAQ,GACRA,EAAQ,GACRA,EAAQ,GACRA,EAAQ,GACRA,EAAQ,GACRA,EAAQ,EACV,EACA,MACF,QACEtM,EAASA,EAAOhF,OAAOsR,CAAO,CAElC,CAIA,IAAKnD,EAAI,EAAGA,EAAInJ,EAAOxN,OAAQ2W,GAAK,EAClCnJ,EAAOmJ,GAAK5K,SAASyB,EAAOmJ,GAAI,EAAE,EAAIsD,EACtCzM,EAAOmJ,EAAI,GAAK5K,SAASyB,EAAOmJ,EAAI,GAAI,EAAE,EAAIuD,CAElD,MAEEnB,GADAlZ,EAAKzI,EAAEyI,CAAE,GACArC,SAAS,EAClBgQ,EAAOtP,KACL6a,EAAItb,KACJsb,EAAIrb,IACJqb,EAAItb,KAAOoC,EAAGsC,MAAM,EACpB4W,EAAIrb,IACJqb,EAAItb,KAAOoC,EAAGsC,MAAM,EACpB4W,EAAIrb,IAAMmC,EAAGyC,OAAO,EACpByW,EAAItb,KACJsb,EAAIrb,IAAMmC,EAAGyC,OAAO,CACtB,EAOJ,IAHA2W,EAAOC,EAAOG,EAAWE,EAAW,OACpCJ,EAAOC,EAAOE,EAAWE,EAAW,CAAC,EAEhC7C,EAAInJ,EAAOxN,OAAS,EAAQ,GAAL2W,EAAQA,GAAK,EACvC8C,EAAOjM,EAAOmJ,GACd+C,EAAOlM,EAAOmJ,EAAI,GAEd8C,EAAOR,IACTA,EAAOQ,EACPD,EAAWE,GAEFP,EAAPM,IACFN,EAAOM,EACPF,EAAWG,GAETA,EAAOR,IACTA,EAAOQ,EACPJ,EAAWG,GAEFL,EAAPM,IACFN,EAAOM,EACPL,EAAWI,GAkCf,OA5BItX,GAASG,IACX0W,EAAQ,CAAA,EACR5hB,EAAEG,KACA,CACE,CAAC+hB,EAAWnX,EAAO+W,EAAO5W,GAC1B,CAAC+W,EAAUH,EAAO5W,GAClB,CAAC2W,EAAO9W,EAAOqX,EAAWlX,GAC1B,CAAC2W,EAAO9W,EAAOoX,GACf,CAACJ,EAAMK,EAAWlX,GAClB,CAAC6W,EAAMI,GACP,CAACD,EAAWnX,EAAOiX,GACnB,CAACC,EAAUD,IAEb,SAAU5hB,EAAGc,GACX,GAAI,CAAC0gB,GAAS1gB,EAAE,GAAKshB,GAASthB,EAAE,GAAKuhB,EAGnC,OAFAF,EAAOrhB,EAEA,EADP0gB,EAAQ,CAAA,EAGZ,CACF,EAIKA,IACHW,EAAO,CAACR,EAAMC,KAGXO,CACT,CACD,EAAE9iB,MAAM,EAQT,CAAA,SAAWO,GACT,aAEA,IAAI6B,EAAI7B,EAAE8B,QACRgJ,EAAIjJ,EAAEI,MACNuH,EAAI3H,EAAEse,QAAQ9d,UAEhBR,EAAEI,MAAMihB,aAAe,SAAUxQ,EAAKyQ,GACpC,IAAIC,EAWJ,OAVKD,EAMO,KAFVC,EAAM1Q,EAAI3H,MAAQoY,EAAOpY,OAAS2H,EAAIxH,OAASiY,EAAOjY,SAEpCkY,EAAM,OACtBA,EAAM,IANRA,EAAM,EACND,EAASzQ,GAQJ,CACLkM,MAAe,IAARwE,EACPC,SAAUD,EACVE,UAAWH,EAAOpY,MAClBwY,WAAYJ,EAAOjY,OACnBH,MAAO2H,EAAI3H,MACXG,OAAQwH,EAAIxH,OACZsY,MAAO9Q,EAAI3H,MAAQ2H,EAAIxH,MACzB,CACF,EAEArJ,EAAEI,MAAMmD,SAAW,SAAUwF,EAAO6Y,EAAU7E,GAIxC8E,EAAM5Y,EAAEH,KAAKC,CAAK,EACpBC,EAAMC,EAAEH,KAAK8Y,EAAU,CAAA,CAAI,EAE7B,GAAK5Y,EAAIQ,SAAS,EAMlB,OAHKqY,EAAIrY,SAAS,IAChBqY,EAAM7Y,GAED9K,KAAKmjB,aAAaQ,EAAK9E,EAAQ/T,EAAM,IAAI,EAL9C,KAAM,oHAMV,EAYAhJ,EAAEyR,QAAQjR,UAAUshB,OAAS,SAAU5Y,EAAOG,EAAQY,EAAUjF,GAC9D,IAAI2C,EACFoa,EACAC,EAEAlT,EACA6S,EACAzb,EAAKhI,KAKP,SAAS+jB,EAAW7O,EAAQ2D,EAAGC,GACzBhX,EAAE4E,UAAU,GACdwO,EAAOlK,MAAQ6N,EACf3D,EAAO/J,OAAS2N,IAEhB7Y,EAAEiV,CAAM,EAAElK,MAAM6N,CAAC,EACjB5Y,EAAEiV,CAAM,EAAE/J,OAAO2N,CAAC,EAEtB,CAgBA,SAASkL,IAIP,IACM5P,EAJN2P,EAAW/b,EAAG+N,eAAgB/K,EAAOG,CAAM,EAGxB,GAAfyF,KACEwD,EAAWpM,EAAG2G,KAAKiC,IACdqT,YAAc,CAAElhB,KAAM,CAAA,CAAM,EACrCiF,EAAGoI,cAAcgE,EAASvH,GAAG,EAAExJ,UAAU,EACzC+Q,EAAS6P,YAAc,MAEzBF,EAAW/b,EAAGgL,YAAahI,EAAOG,CAAM,EACxCnD,EAAGsQ,iBAAiB,EAtBpBtQ,EAAG0F,cAAgB,GAEf3C,EAAE5I,WAAW2E,CAAQ,GACvBA,EAAS,EAGXkB,EAAGoX,oBAAoB,CAkBzB,CAEA,SAAS8E,IACPjkB,EAAE+H,EAAG6C,KAAK,EAAEa,IAAIoY,CAAO,EAEvB9b,EAAGmP,UAAYpM,EAAEoY,aACf,CACEnY,MAAOA,EACPG,OAAQA,CACV,EACA,CACEH,MAAOhD,EAAGmP,UAAUoM,UACpBpY,OAAQnD,EAAGmP,UAAUqM,UACvB,CACF,EACAvjB,EAAEG,KAAK4H,EAAG2G,KAAM,SAAUtO,EAAGc,GAC3BlB,EAAEG,KAAKe,EAAEyE,MAAM,EAAG,SAAUvF,EAAGc,GAC7BA,EAAEyiB,OAAO,CACX,CAAC,CACH,CAAC,CACH,CA3DA9c,EAAWA,GAAYiF,EA6DnB/D,EAAGmP,UAAUnM,QAAUA,GAAShD,EAAGmP,UAAUhM,SAAWA,IAI5DyF,EAAc5I,EAAG4I,YAEZ5F,IACHyY,EAAQtY,EAASnD,EAAGmP,UAAUqM,WAC9BxY,EAAQyJ,KAAK0P,MAAMnc,EAAGmP,UAAUoM,UAAYE,CAAK,GAE9CtY,IACHsY,EAAQzY,EAAQhD,EAAGmP,UAAUoM,UAC7BpY,EAASsJ,KAAK0P,MAAMnc,EAAGmP,UAAUqM,WAAaC,CAAK,GAGrDK,EAAU,CAAE9Y,MAAOiV,OAAOjV,CAAK,EAAI,KAAMG,OAAQ8U,OAAO9U,CAAM,EAAI,IAAK,EAClErJ,EAAE4E,UAAU,GACfzG,EAAE+H,EAAGgL,WAAW,EAAE+F,SAAS,EAAEpJ,OAAO,EAKtCyU,EAAMnkB,EAAE+H,EAAGiX,OAAO,EAAEhJ,KAAK,aAAa,EACK,CAAA,IAAvCjO,EAAGmI,QAAQ7K,0BACb8e,EAAMA,EAAIpX,IAAIhF,EAAGiX,OAAO,GAGtBlT,GACF8X,EAAW,GACX7b,EAAG0F,cAAgB,WACnB0W,EAAIrS,OAAO,UAAU,EAAE3R,KAAK,SAAUC,EAAGc,GACvCsI,EAAIsB,EAAEzD,MAAM,EACZuc,EAAS9c,KAAK0C,CAAC,EAEfxJ,EAAEkB,CAAC,EAAEkjB,QAAQP,EAAS,CACpB/X,SAAUA,EACVT,SAAU7B,EAAEjC,QACZ8c,OAAQ,QACV,CAAC,CACH,CAAC,EACDF,EAAIrS,OAAO,SAAS,EAAErG,IAAIoY,CAAO,EAEjCra,EAAIsB,EAAEzD,MAAM,EACZuc,EAAS9c,KAAK0C,CAAC,EAKfsB,EAAE7D,KAAKC,IAAI0c,CAAQ,EAAEnc,KAAKsc,CAAY,EACtCE,EAAc,EACdza,EAAEjC,QAAQ,IAEV4c,EAAI1Y,IAAIoY,CAAO,EACfI,EAAc,EACdF,EAAa,GAEjB,EAEAliB,EAAEyR,QAAQjR,UAAUiD,WAAa,SAAUwG,EAAUjF,GAC1C9G,KACN4jB,OAAO3jB,EADDD,KACMif,OAAO,EAAEjU,MAAM,EAAG,KAAMe,EAAUjF,CAAQ,CAC3D,EAEAhF,EAAEyR,QAAQjR,UAAU+c,oBAAsB,WACxC,IAAIrX,EAAKhI,KACPoB,EAAK4G,EAAGsV,uBAAuB,EAEjC,SAASiH,IAQuB,CAAA,IAA1Bvc,EAAGmI,QAAQ5K,YAIfyC,EAAGzC,WAAWyC,EAAGmI,QAAQ1K,mBAAoBuC,EAAGmI,QAAQzK,YAAY,CACtE,CASAzF,EAAE+H,EAAG6C,KAAK,EAAE0O,GAAG,OAASnY,EAAImjB,CAAS,EACrCtkB,EAAEL,MAAM,EAAE2Z,GAAG,QAAUnY,EAAImjB,CAAS,EACpCtkB,EAAEL,MAAM,EAAE2Z,GAAG,SAAWnY,EATxB,WACM4G,EAAGiT,iBACLjB,aAAahS,EAAGiT,eAAe,EAEjCjT,EAAGiT,gBAAkB7O,WAAWmY,EAAWvc,EAAGmI,QAAQ3K,eAAe,CACvE,CAIoC,EACpCvF,EAAEL,MAAM,EAAE2Z,GAAG,mBAAqBnY,EAAImjB,CAAS,EAC/CtkB,EAAEL,OAAOiQ,QAAQ,EAAE0J,GAAG,mBAAqBnY,EAAImjB,CAAS,EACxDA,EAAU,CACZ,EAEAziB,EAAEse,QAAUrV,EAAEnD,SAAS9F,EAAEse,QAAS,WAEhCpgB,KAAKkI,KAAKC,KAAK,EACXnI,KAAKkX,MAAMC,UAAU0H,OACvB7e,KAAK4jB,OAAO,CAEhB,CAAC,EAEDna,EAAE4M,OAAS,SAAUmO,EAASC,GAC5B,IAAIjF,EACFkF,EAAY,GACZrB,EAAMmB,GAAWxkB,KAAKkX,MAAMC,UAAUmM,SACtClN,EAASqO,GAAe,EAE1B,GAAY,IAARpB,GAA6B,IAAhBoB,EACf,OAAOzkB,KAAKwhB,eAGd,IAAKhC,EAAI,EAAGA,EAAIxf,KAAK6I,OAAQ2W,CAAC,GAE5BkF,EAAU3d,KAAK0N,KAAK0P,MAAMnkB,KAAKwhB,eAAehC,GAAK6D,CAAG,EAAIjN,CAAM,EAElE,OAAOsO,CACT,EACAjb,EAAEma,OAAS,WACT5jB,KAAKma,KAAK9D,OAASrW,KAAKqW,OAAO,EAAElF,KAAK,GAAG,CAC3C,EAEA1H,EAAE+W,MAAQ,WACRxgB,KAAKma,KAAK9D,OAASrW,KAAKqW,OAAO,CAAC,EAAElF,KAAK,GAAG,CAC5C,EAEArP,EAAEG,KAAK2hB,OAAS,SAAU5Y,EAAOG,EAAQY,EAAUjF,GA4BjD,OA3BQ,IAAIhF,EAAEqM,OACZnO,KACA,WACE,IACE2kB,EAAe,CAAC3Z,GAAS,CAACG,EAM5B,GAAIyZ,EAPK5kB,KAGFmQ,QAAQ7K,yBAHNtF,KAIFmQ,QAAQ5K,YACXof,GAOJ,MAAIA,CAAAA,GAIJ3c,KAhBShI,KAgBN4jB,OAAO5Y,EAAOG,EAAQY,EAAUjF,CAAQ,EAhBlC9G,KAQJuF,WAAWwG,EAAUjF,CAAQ,CASpC,EACA,KACA,CACExG,KAAM,SACN2H,KAAMzF,SACR,CACF,EAAEkM,GAAG,CAEP,CAkGD,EAAEhP,MAAM,EAQT,CAAA,SAAWO,GACT,aAEA,IAAI6B,EAAI7B,EAAE8B,QACRgJ,EAAIjJ,EAAEI,MA6BR,SAAS2iB,EAAcvV,EAAMlG,EAAUsC,GACrC,IAAIoZ,EAqCJ,OA/BI1b,GACF0b,EACsB,UAApB,OAAO1b,EAAwBnJ,EAAEmJ,CAAQ,EAAInJ,EAAEmJ,CAAQ,EAAE2b,MAAM,GAEzDnM,OAAOtJ,CAAI,EAEnBwV,EAAU7kB,EAAEqP,CAAI,EAMlBwV,EACGpZ,IACCzL,EAAE2J,OAAO8B,GAAO,GAAI,CAClByT,QAAS,QACT9Y,SAAU,UACZ,CAAC,CACH,EACCgS,KAAK,EAERpY,EAAE,MAAM,EAAE2Y,OAAOkM,CAAO,EAMxBA,EAAQpY,KAAK,eAAgBoY,EAAQpZ,IAAI,SAAS,CAAC,EAAEA,IAAI,UAAW,CAAC,EAI9DoZ,EAAQvM,KAAK,CACtB,CA8DA,SAASyM,EACP7U,EACA8U,EACAxkB,EACA0I,EACA+b,EACAC,GAEA,IAAIC,EAAa,mBACfC,EAAa5kB,EAAQ2kB,EAEe,GAAlCnlB,EAAEyJ,QAAQub,EAAY9U,CAAO,GAC/BhH,EAAO0E,IAAIwX,CAAU,EAAE9L,GAAG8L,EAAY,SAAUlkB,GACzC+jB,GAAeA,CAAAA,EAAYvjB,KAAK3B,KAAMmB,CAAC,IAC1CgI,EAAO0E,IAAIuX,CAAU,EACjBD,GACFA,EAAQxjB,KAAK3B,IAAI,EAGvB,CAAC,CAOL,CAuBA,SAASub,EAAYuJ,EAAS3b,EAAQ0B,EAAO8W,EAAWxR,GACtD,IACEmV,EAAS,GA8BX,OA5BAnV,EAAUA,GAAW,GAEjBhH,GACFoc,EAAUxa,EAAE2W,YACVvY,EACA0B,EACA8W,EACAmD,EAAQU,WAAW,CAAA,CAAI,EACvBV,EAAQW,YAAY,CAAA,CAAI,CAC1B,EAIAH,EAAOhf,KAAOif,EAAQ,GACtBD,EAAO/e,IAAMgf,EAAQ,KAErBD,EAAOhf,KAAO6J,EAAQ7J,KACtBgf,EAAO/e,IAAM4J,EAAQ5J,KAGvB+e,EAAOhf,MAAQ6J,EAAQ2S,SAAW,EAClCwC,EAAO/e,KAAO4J,EAAQ4S,SAAW,EAEjCuC,EAAO5Z,IAAMyE,EAAQzE,IACrB4Z,EAAOtiB,aAAemN,EAAQnN,aA9HP8hB,EAgIPA,EA/HZY,EAAa,CACbpf,MAF4B6J,EAgIPmV,GA9HPhf,KAAO,KACrBC,IAAK4J,EAAQ5J,IAAM,IACrB,EACAof,EAAeb,EAAQpY,KAAK,cAAc,GAAK,EAC/CkZ,EAASd,EAAQpZ,IAAI,SAAS,EAEH,IAAzBkJ,SAASgR,EAAQ,EAAE,GAAsB,SAAXA,IAChCF,EAAW,WAAa,MAG1BZ,EAAQpZ,IAAIga,CAAU,EAAEhQ,SAAS,iBAAiB,EAE9CvF,EAAQnN,cAAuC,EAAvBmN,EAAQnN,aAClC+H,EAAEY,MAAMmZ,EAAQ,GAAI,EAAGa,EAAcxV,EAAQnN,YAAY,EAEzD+H,EAAEQ,WAAWuZ,EAAQ,GAAIa,CAAY,EAiHhCb,CACT,CAmJA,SAASe,EAAmB1V,GAG1B,OAAOA,EACgB,UAAnB,OAAOA,GAAwBA,EAAQ2V,QAAU/a,EAAE5I,WAAWgO,CAAO,EACnEA,EACAA,EAAQ4V,QACV,IACN,CAEA,SAASC,EAAsB7V,GAC7B,OAAOA,EACe,UAAlB,OAAOA,GAAuBA,EAAQ2V,QAAU/a,EAAE5I,WAAWgO,CAAO,EAClE,CAAE4V,QAAS5V,CAAQ,EACnBA,EACF,EACN,CArXAlQ,EAAE2J,OAAO9H,EAAEgC,SAAU,CACnBmiB,iBACE,0UAGF1K,YAAa,CAAA,EACbC,QAAS,KACT0K,YAAa,CAAA,EACbtJ,aAAc,CAAC,gBAAiB,iBAAkB,oBAClDuJ,cAAe,KACfC,cAAe,IACjB,CAAC,EAEDnmB,EAAE2J,OAAO9H,EAAEoE,cAAe,CACxBsV,QAAS,KACToB,aAAc,IAChB,CAAC,EA0FD9a,EAAEyR,QAAQjR,UAAUwa,aAAe,WAC7B9c,KAAK6c,gBACP7c,KAAK6c,cAAc1c,KAAK,EAAEwP,OAAO,EACjC3P,KAAK6c,cAAgB,KACrB7c,KAAKqmB,gBAAkB,KACvBtb,EAAEL,WAAW1K,KAAKmQ,QAAQiW,cAAepmB,IAAI,EAEjD,EAoHA8B,EAAEke,SAAS1d,UAAUiZ,YAAc,SAAUwK,EAAS5V,GACpD,IACEmW,EACAnd,EAEAC,EAEAgI,EAAKpR,KACLwQ,EAAKY,EAAG8F,MACR8E,EAAW5K,EAAGwB,iBAAiB,EAkCjC,GA/BAzC,EAAUA,EAAUlQ,EAAE2J,OAAO,GAAIuG,CAAO,EAAI,GAE5C4V,EAAUA,GAAW/J,EAASR,QAC9B8K,EACEnW,EAAQoW,aACRvK,EAASY,cACTpM,EAAGL,QAAQyM,cACX,gBAEFxT,EAC8B,KAAA,IAArB+G,EAAQ/G,SACX+G,EAAQ/G,SACRoH,EAAGL,QAAQ8V,iBAEjB9V,EAAQoW,YACe,UAArB,OAAOD,EACFA,EAAYvb,EAAExC,MAAM+d,CAAS,EAC9BA,EAENnW,EAAQnN,aACNmN,EAAQnN,eACPwN,EAAGL,QAAQ+V,YACR1V,EAAGL,QAAQnN,cAAgBgZ,EAAShZ,aACpC,GAENmG,EAASiI,EAAG+I,MAERla,EAAEmT,IAAIhC,EAAGxL,MAAM,EAAG,SAAUzE,GAC1B,OAAOA,EAAEgZ,IACX,CAAC,EAED3J,EAAG6V,kBAAoBjV,EAAG0E,OAA9B,CAIAtF,EAAGsM,aAAa,EAEhB,IAAI0J,EAAmBzb,EAAE5I,WAAW4jB,CAAO,EACvCA,EAAQ,CAAElZ,IAAK7M,KAAK6M,IAAK1D,OAAQA,CAAO,CAAC,EACzC4c,EAEJ,GAAKS,EAiEL,OA7DAhW,EAAGqM,cAAgBiI,EAAUD,EAC3B2B,EACApd,EACA+G,EAAQzE,GACV,EAEA8E,EAAG6V,gBAAkBjV,EAAG0E,OAExB2Q,EAAY,WACVjW,EAAGsM,aAAa,CAClB,EAEAkI,EACEsB,EACA,aACA,QACArmB,EAAEuQ,EAAG4C,GAAG,EACR,KACAqT,CACF,EACAzB,EACEsB,EACA,gBACA,QACAxB,EACA,KACA2B,CACF,EACAzB,EACEsB,EACA,iBACA,WACArmB,EAAEuQ,EAAG3F,KAAK,EACV,SAAU1J,GACR,OACEA,EAAEua,eAC2B,SAA7Bva,EAAEua,cAAczR,UAChB9I,EAAEua,gBAAkBtK,EAAG+I,IAE3B,EACAsM,CACF,EACAzB,EACEsB,EACA,cACA,QACArmB,EAAEuQ,EAAG3F,KAAK,EACV,KACA4b,CACF,EAEAlL,EAAYuJ,EAAS3b,EAAQqH,EAAG3F,MAAOsF,EAAQwR,UAAWxR,CAAO,EAEjEpF,EAAEL,WAAW8F,EAAGL,QAAQgW,cAAe/U,EAAG+I,KAAM,CAC9CqB,QAASsJ,EACT3U,QA1GS,GA2GTuW,YAAa1K,EACbnP,IAAKuE,EAAGvE,IACR5G,SAAUmL,EAAGV,WAAW,CAC1B,CAAC,EAEMoU,CAzEP,CA0EF,EAyDAhjB,EAAEG,KAAK6iB,QAAU,SAAUjY,EAAKsD,GAC9B,OAAO,IAAIrO,EAAEqM,OACXnO,KACA,WACE,IACEmJ,EAEAmd,EACAG,EAiBED,EAXFG,EALAnW,EAAKxQ,KACF6M,GAIH8Z,GADAxd,EAASlJ,EAAE4M,CAAG,IAC4B,EAAhB1D,EAAON,OAAaM,EAAO,GAAK,KACtDqH,EAAG6V,kBAAoBM,IAI3BnW,EAAGsM,aAAa,EACX6J,KAIDZ,EAAUF,EAAmB1V,CAAO,EACtCqW,EAAmBzb,EAAE5I,WAAW4jB,CAAO,EACnCA,EAAQ,CAAElZ,IAAK7M,KAAK6M,IAAK1D,OAAQA,CAAO,CAAC,EACzC4c,KAQNO,GAFAnW,EAAU6V,EAAsB7V,CAAO,GAG7BoW,aAAe/V,EAAGL,QAAQyM,cAAgB,gBAEpDzM,EAAQoW,YACe,UAArB,OAAOD,EACFA,EAAYvb,EAAExC,MAAM+d,CAAS,EAC9BA,EAENnW,EAAQnN,aACNmN,EAAQnN,eACPwN,EAAGL,QAAQ+V,YAAc1V,EAAGL,QAAQnN,aAAe,GAEtDyjB,EAAY,WACVjW,EAAGsM,aAAa,CAClB,EAEAtM,EAAGqM,cAAgBiI,EAAUD,EAC3B2B,EACArW,EAAQ/G,UAAYoH,EAAGL,QAAQ8V,iBAC/B9V,EAAQzE,GACV,EACA8E,EAAG6V,gBAAkBM,EAErB3B,EACEsB,EACA,gBACA,QACAxB,EACA,KACA2B,CACF,EAEAzB,EACEsB,EACA,mBACA,WACAnd,EACA,KACAsd,CACF,EAEAzB,EACEsB,EACA,gBACA,QACAnd,EACA,KACAsd,CACF,EAEAjW,EAAGqM,cAA0BtB,EAC3BuJ,EACA3b,EACAqH,EAAG3F,MACHsF,EAAQwR,UACRxR,CACF,IAhFAK,EAAGsM,aAAa,CAkFpB,EACA,WACM7c,EAAE0J,cAAckD,CAAG,GAAK,CAACsD,IAC3BA,EAAUtD,GAGZ7M,KAAKub,YACHsK,EAAmB1V,CAAO,EAC1B6V,EAAsB7V,CAAO,CAC/B,CACF,EACA,CACE7P,KAAM,UACN2H,KAAMzF,UACNqK,IAAKA,CACP,CACF,EAAE6B,GAAG,CACP,CACD,EAAEhP,MAAM,CAET,CAAE"}
\ No newline at end of file
+{"version":3,"file":"jquery.imagemapster.zepto.min.js","sources":["jquery.imagemapster.zepto.js"],"names":["root","factory","define","amd","module","exports","jQuery","undefined","window","require","Zepto","self","this","$","fn","stop","each","_","name","funcName","toLowerCase","event","special","setupListener","supportsPassive","opts","Object","defineProperty","get","addEventListener","removeEventListener","e","ns","type","listener","includes","passive","touchstart","setup","call","touchend","mapster_version","m","mapster","method","impl","utils","isFunction","apply","Array","prototype","slice","arguments","error","bind","version","render_defaults","isSelectable","isDeselectable","fade","fadeDuration","fill","fillColor","fillColorMask","fillOpacity","highlight","stroke","strokeColor","strokeOpacity","strokeWidth","includeKeys","altImage","altImageId","altImages","defaults","clickNavigate","navigateMode","wrapClass","wrapCss","onGetList","sortList","listenToList","mapKey","mapValue","singleSelect","listKey","listSelectedAttribute","listSelectedClass","onClick","onMouseover","onMouseout","mouseoutDelay","onStateChange","boundList","onConfigured","configTimeout","noHrefIsMask","scaleMap","enableAutoResizeSupport","autoResize","autoResizeDelay","autoResizeDuration","onAutoResize","safeLoad","areas","shared_defaults","render_highlight","render_select","staticState","selected","area_defaults","isMask","canvas_style","position","left","top","padding","border","hasCanvas","map_cache","hooks","addHook","callback","push","callHooks","context","when","all","deferredArray","Promise","defer","promise","resolve","reject","then","catch","subclass","BaseClass","constr","Subclass","me","args","base","init","constructor","asArray","obj","split","text","cb","el","arr","i","length","trim","splice","updateProps","_target","_template","target","template","isEmptyObject","onlyProps","prop","src","p","inArray","isPlainObject","extend","isElement","o","HTMLElement","nodeType","nodeName","indexOf","indexOfProp","val","result","boolOrDefault","def","isBool","isUndef","ifFunction","that","size","image","raw","u","width","naturalWidth","imgWidth","height","naturalHeight","imgHeight","complete","setOpacity","opacity","style","css","fader","fade_func","op","endOp","duration","index","cbIntervals","elements","lastKey","setTimeout","getShape","areaEl","shape","hasAttribute","attrName","attr","getBoundList","key_list","key","list","is","add","getMapDataIndex","img","id","tagName","parent","getMapData","queueCommand","map_data","command","currentAction","commands","unload","off","ap","capProp","substr","toUpperCase","jqwidth","Method","func_map","func_area","output","input","first","allowAsync","go","data","ar","area_list","len","getData","addMap","removeMap","hasVml","a","appendTo","b","html","firstChild","has","behavior","adj","remove","namespaces","document","d","g_vml_","getContext","merge_areas","map_areas","options","getDataForKey","merge_options","temp_opts","area_options","md","getSelected","isSelected","defaultReturn","highlightId","ensureNoHighlight","keys","keyList","addUniqueKeys","getKeysForGroup","getDataForArea","join","ad","concat","select","set","deselect","lastMap","addArea","finishSetForMap","setSelection","toggle","removeSelectionFinish","filter","toString","unbind","preserveState","clearEvents","clearMapData","rebind","configureOptions","bindImages","buildDataset","get_options","effective","eff","effectiveOptions","set_options","graphics","snapshot","base_canvas","createVisibleCanvas","before","state","map","usemap","getAttribute","MapData","initialize","useCanvas","shapes","value","v","createStyleSheet","addRule","test","eval","canvasMethods","vmlMethods","addShapeGroupImpl","areaData","nohref","addShape","hex_to_decimal","hex","Math","max","min","parseInt","css3color","color","noop","Graphics","active","canvas","masks","begin","elementName","c","mapArea","mapData","createCanvasFor","addClass","addShapeGroup","mode","effectiveRenderOptions","areaId","overlay_canvas","render","find","not","renderShape","offset","coords","rect","moveTo","lineTo","arc","PI","addAltImage","beginPath","closePath","clip","globalAlpha","altImageOpacity","drawImage","owner","scaleInfo","maskCanvas","maskContext","hasMasks","shapeCanvas","shapeContext","clearRect","save","lineWidth","fillStyle","restore","s","images","strokeStyle","globalCompositeOperation","clearHighlight","refreshSelections","canvas_temp","hide","redrawSelections","show","cssclass","el_name","el_class","t_fill","append","w","h","children","removeSelections","area_id","MapImages","clear","status","_add","ids","on","imageLoaded","imageLoadError","triesLeft","check","isLoaded","imgTimeout","deferred","resolver","clearTimeout","queueMouseEvent","delay","area","activeAreaEvent","completeAction","currentAreaId","shouldNavigateTo","href","mousedown","blur","preventDefault","imgCssText","cssText","mapAreas","_xref","_tooltip_events","autoResizeTimer","mouseover","arData","getAllDataForArea","isNotRendered","clearEffects","showToolTip","toolTip","mouseout","relatedTarget","click","list_target","newSelectionState","canChangeState","cbResult","areaOpts","navigateTo","open","location","getNavDetails","defaultHref","useEl","elHref","hrefTarget","clickArea","listTarget","navDetails","toolTipClose","activeToolTip","clearToolTip","mi","e2","isActive","resizing","zoomed","zoomedArea","wrapId","instanceEventNamespace","_idFromKey","hasOwnProperty","atMost","isPrimary","getPrimaryKeysForMapAreas","changeState","setHighlightId","clearSelections","setAreaOptions","drawSelections","key_arr","drawSelection","isSelectedOrStatic","setBoundListProperties","removeClass","clearBoundListProperties","refreshBoundList","setBoundList","sort_func","sorted_list","sort","wrap","scale","parentId","substring","className","wrapper","imgCopy","display","processCommandQueue","configureAutoResize","$img","sel","j","$area","curKey","mapAreaId","group_value","dataItem","default_group","addAreaData","AreaData","String","configure","areaDataXref","MapArea","areasXref","cur","_clearCanvases","reset","g","isNoHref","staticStateOverridden","optsCache","constuctor","newOptsCache","hasOptions","changeOptions","isDrawn","selectedHasChanged","updateSelected","partial","prevSelected","allOpts","state_type","originalCoords","parseFloat","areaCorners","container","pos","found","minX","minY","maxX","maxY","bestMinX","bestMaxX","bestMinY","bestMaxY","curX","curY","nest","rootx","rooty","iCoords","radius","angle","offsetx","offsety","body","cos","sin","getScaleInfo","actual","pct","scalePct","realWidth","realHeight","ratio","imageRaw","vis","resize","promises","newsize","sizeCanvas","finishResize","tempOptions","resizeMapData","round","els","animate","easing","resizeMap","percent","coordOffset","newCoords","noDimensions","isAutoResize","createToolTip","tooltip","clone","bindToolTipClose","bindOption","beforeClose","onClose","tooltip_ns","event_name","ttopts","corners","outerWidth","outerHeight","tooltipCss","actalOpacity","zindex","getHtmlFromOptions","jquery","content","getOptionsFromOptions","toolTipContainer","toolTipFade","onShowToolTip","onHideToolTip","activeToolTipID","closeOpts","closeEvents","effectiveContent","tipClosed","areaOptions","defaultTarget"],"mappings":"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"}
\ No newline at end of file
diff --git a/examples/boundlist.html b/examples/boundlist.html
index f9479d0..dbb0eb1 100644
--- a/examples/boundlist.html
+++ b/examples/boundlist.html
@@ -250,7 +250,7 @@
Bound List Test
diff --git a/examples/frog.html b/examples/frog.html
new file mode 100644
index 0000000..44312ac
--- /dev/null
+++ b/examples/frog.html
@@ -0,0 +1,119 @@
+
+
+
+
+
Frog Menu Demo
+
+
+
+
+
ImageMapster Examples
diff --git a/examples/manualresize.html b/examples/manualresize.html new file mode 100644 index 0000000..c54187c --- /dev/null +++ b/examples/manualresize.html @@ -0,0 +1,470 @@ + + +
+ +
+ + + + + + + + + + + +
+