ketcher-macromolecules 3.8.0-dev.1 → 3.8.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,6 +3,7 @@ export declare const hotkeysShortcuts: {
3
3
  DNASequenceType: string;
4
4
  PEPTIDESequenceTYpe: string;
5
5
  exit: string;
6
+ switchSelectTool: string;
6
7
  undo: string;
7
8
  redo: string;
8
9
  erase: string;
@@ -20,7 +20,7 @@ declare const Menu: {
20
20
  ({ children, onItemClick, activeMenuItems, testId, isHorizontal, }: React.PropsWithChildren<MenuProps>): import("@emotion/react/jsx-runtime").JSX.Element;
21
21
  Group: ({ children, divider, isHorizontal, }: React.PropsWithChildren<GroupProps>) => import("@emotion/react/jsx-runtime").JSX.Element;
22
22
  Item: ({ itemId, title, disabled, testId, onClick, type, }: {
23
- itemId: "α" | "β" | "γ" | "δ" | "ε" | "ζ" | "η" | "θ" | "ι" | "κ" | "λ" | "μ" | "ν" | "ξ" | "ο" | "π" | "ρ" | "σ" | "τ" | "υ" | "φ" | "χ" | "ψ" | "ω" | "Å" | "°" | "ħ" | "±" | "‰" | "√" | "←" | "→" | "←/" | "/→" | "↔" | "∏" | "∑" | "∞" | "∂" | "∆" | "∫" | "≈" | "=/" | "≤" | "≥" | "℉" | "℃" | "about" | "analyse" | "any-atom" | "arom" | "arrow-upward" | "bonds" | "bond-any" | "bond-aromatic" | "bond-crossed" | "bond-hydrogen" | "bond-dative" | "bond-double" | "bond-doublearomatic" | "bond-down" | "bond-single" | "bond-singlearomatic" | "bond-singledouble" | "bond-triple" | "bond-up" | "bond-updown" | "capital-t" | "chain" | "charge-minus" | "charge-plus" | "check" | "check-mark" | "chiral-flag" | "cip" | "clean" | "copies" | "copy" | "copy-image" | "copy-mol" | "copy-ket" | "copyMenu" | "cut" | "dearom" | "delete" | "deleteMenu" | "dropdown" | "enhanced-stereo" | "edit" | "elements-group" | "extended-table" | "erase" | "file-thumbnail" | "fullscreen-enter" | "fullscreen-exit" | "generic-groups" | "hand" | "compressedhand" | "help" | "history" | "image-frame" | "layout" | "logo" | "miew" | "macromolecules-mode" | "molecules-mode" | "clear" | "open" | "paste" | "editMenu" | "pasteNavBar" | "period-table" | "arrows" | "reaction-arrow-elliptical-arc-arrow-filled-bow" | "reaction-arrow-elliptical-arc-arrow-filled-triangle" | "reaction-arrow-elliptical-arc-arrow-open-angle" | "reaction-arrow-elliptical-arc-arrow-open-half-angle" | "reaction-arrow-open-angle" | "reaction-arrow-filled-triangle" | "reaction-arrow-filled-bow" | "reaction-arrow-dashed-open-angle" | "reaction-arrow-failed" | "reaction-arrow-retrosynthetic" | "reaction-arrow-both-ends-filled-triangle" | "reaction-arrow-equilibrium-filled-half-bow" | "reaction-arrow-equilibrium-filled-triangle" | "reaction-arrow-equilibrium-open-angle" | "reaction-arrow-unbalanced-equilibrium-filled-half-bow" | "reaction-arrow-unbalanced-equilibrium-open-half-angle" | "reaction-arrow-unbalanced-equilibrium-large-filled-half-bow" | "reaction-arrow-unbalanced-equilibrium-filled-half-triangle" | "reaction-arrow-multitail" | "reaction-automap" | "reaction-mapping-tools" | "reaction-map" | "reaction-plus" | "reaction-unmap" | "recognize" | "redo" | "rgroup" | "rgroup-attpoints" | "rgroup-fragment" | "rgroup-label" | "save" | "search" | "select-fragment" | "select-lasso" | "select-rectangle" | "settings" | "sgroup" | "template-0" | "template-1" | "template-2" | "template-3" | "template-4" | "template-5" | "template-6" | "template-7" | "template-dialog" | "template-lib" | "snake-mode" | "text" | "images" | "text-bold" | "text-italic" | "text-subscript" | "text-superscript" | "transform-flip-h" | "transform-flip-v" | "undo" | "zoom-in" | "zoom-out" | "zoom-reset" | "shapes" | "shape-ellipse" | "shape-rectangle" | "shape-polyline" | "shape-line" | "not-found" | "save-1" | "open-1" | "reset" | "close" | "general" | "general-white" | "stereo" | "stereo-white" | "atoms" | "atoms-white" | "bond-common" | "bonds-white" | "server" | "server-white" | "3dviewer" | "3dviewer-white" | "debugging" | "debugging-white" | "dropdown-indicator" | "text-special-symbols" | "chevron" | "open-window-paste-icon" | "open-window-upload-icon" | "bracket" | "error" | "rap-left-link" | "rap-middle-link" | "rap-right-link" | "arrows-left" | "arrows-right" | "sugar" | "base" | "phosphate" | "preset" | "nucleotide" | "peptide" | "chem" | "edit-filled" | "vertical-dots" | "expand" | "minimize-expansion" | "explicit-hydrogens" | "flex-layout-mode" | "snake-layout-mode" | "sequence-layout-mode" | "questionMark" | "no-highlight-cross" | "arrowsUpDown" | "plus" | "antisenseStrand" | "antisenseRnaStrand" | "antisenseDnaStrand" | "monomer-autochain" | "create-monomer" | "checkFilled" | "warningFilled";
23
+ itemId: "α" | "β" | "γ" | "δ" | "ε" | "ζ" | "η" | "θ" | "ι" | "κ" | "λ" | "μ" | "ν" | "ξ" | "ο" | "π" | "ρ" | "σ" | "τ" | "υ" | "φ" | "χ" | "ψ" | "ω" | "Å" | "°" | "ħ" | "±" | "‰" | "√" | "←" | "→" | "←/" | "/→" | "↔" | "∏" | "∑" | "∞" | "∂" | "∆" | "∫" | "≈" | "=/" | "≤" | "≥" | "℉" | "℃" | "about" | "analyse" | "any-atom" | "arom" | "arrow-upward" | "bonds" | "bond-any" | "bond-aromatic" | "bond-crossed" | "bond-hydrogen" | "bond-dative" | "bond-double" | "bond-doublearomatic" | "bond-down" | "bond-single" | "bond-singlearomatic" | "bond-singledouble" | "bond-triple" | "bond-up" | "bond-updown" | "capital-t" | "chain" | "charge-minus" | "charge-plus" | "check" | "check-mark" | "chiral-flag" | "cip" | "clean" | "copies" | "copy" | "copy-image" | "copy-mol" | "copy-ket" | "copyMenu" | "cut" | "dearom" | "delete" | "deleteMenu" | "dropdown" | "enhanced-stereo" | "edit" | "elements-group" | "extended-table" | "erase" | "file-thumbnail" | "fullscreen-enter" | "fullscreen-exit" | "generic-groups" | "hand" | "compressedhand" | "help" | "history" | "image-frame" | "layout" | "logo" | "miew" | "macromolecules-mode" | "molecules-mode" | "clear" | "open" | "paste" | "editMenu" | "pasteNavBar" | "period-table" | "arrows" | "reaction-arrow-elliptical-arc-arrow-filled-bow" | "reaction-arrow-elliptical-arc-arrow-filled-triangle" | "reaction-arrow-elliptical-arc-arrow-open-angle" | "reaction-arrow-elliptical-arc-arrow-open-half-angle" | "reaction-arrow-open-angle" | "reaction-arrow-filled-triangle" | "reaction-arrow-filled-bow" | "reaction-arrow-dashed-open-angle" | "reaction-arrow-failed" | "reaction-arrow-retrosynthetic" | "reaction-arrow-both-ends-filled-triangle" | "reaction-arrow-equilibrium-filled-half-bow" | "reaction-arrow-equilibrium-filled-triangle" | "reaction-arrow-equilibrium-open-angle" | "reaction-arrow-unbalanced-equilibrium-filled-half-bow" | "reaction-arrow-unbalanced-equilibrium-open-half-angle" | "reaction-arrow-unbalanced-equilibrium-large-filled-half-bow" | "reaction-arrow-unbalanced-equilibrium-filled-half-triangle" | "reaction-arrow-multitail" | "reaction-automap" | "reaction-mapping-tools" | "reaction-map" | "reaction-plus" | "reaction-unmap" | "recognize" | "redo" | "rgroup" | "rgroup-attpoints" | "rgroup-fragment" | "rgroup-label" | "save" | "search" | "select-fragment" | "select-lasso" | "select-rectangle" | "settings" | "sgroup" | "template-0" | "template-1" | "template-2" | "template-3" | "template-4" | "template-5" | "template-6" | "template-7" | "template-dialog" | "template-lib" | "snake-mode" | "text" | "images" | "text-bold" | "text-italic" | "text-subscript" | "text-superscript" | "transform-flip-h" | "transform-flip-v" | "undo" | "zoom-in" | "zoom-out" | "zoom-reset" | "shapes" | "shape-ellipse" | "shape-rectangle" | "shape-polyline" | "shape-line" | "not-found" | "save-1" | "open-1" | "reset" | "close" | "general" | "general-white" | "stereo" | "stereo-white" | "atoms" | "atoms-white" | "bond-common" | "bonds-white" | "server" | "server-white" | "3dviewer" | "3dviewer-white" | "debugging" | "debugging-white" | "dropdown-indicator" | "text-special-symbols" | "chevron" | "open-window-paste-icon" | "open-window-upload-icon" | "bracket" | "error" | "rap-left-link" | "rap-middle-link" | "rap-right-link" | "arrows-left" | "arrows-right" | "sugar" | "base" | "phosphate" | "preset" | "nucleotide" | "peptide" | "chem" | "edit-filled" | "vertical-dots" | "expand" | "minimize-expansion" | "explicit-hydrogens" | "flex-layout-mode" | "snake-layout-mode" | "sequence-layout-mode" | "questionMark" | "no-highlight-cross" | "arrowsUpDown" | "plus" | "antisenseStrand" | "antisenseRnaStrand" | "antisenseDnaStrand" | "monomer-autochain" | "create-monomer" | "checkFilled" | "warningFilled" | "leavingGroup";
24
24
  title?: string | undefined;
25
25
  testId?: string | undefined;
26
26
  disabled?: boolean | undefined;
@@ -35,7 +35,7 @@ declare const Menu: {
35
35
  testId?: string | undefined;
36
36
  layoutModeButton?: boolean | undefined;
37
37
  generalTitle?: string | undefined;
38
- activeItem?: "α" | "β" | "γ" | "δ" | "ε" | "ζ" | "η" | "θ" | "ι" | "κ" | "λ" | "μ" | "ν" | "ξ" | "ο" | "π" | "ρ" | "σ" | "τ" | "υ" | "φ" | "χ" | "ψ" | "ω" | "Å" | "°" | "ħ" | "±" | "‰" | "√" | "←" | "→" | "←/" | "/→" | "↔" | "∏" | "∑" | "∞" | "∂" | "∆" | "∫" | "≈" | "=/" | "≤" | "≥" | "℉" | "℃" | "about" | "analyse" | "any-atom" | "arom" | "arrow-upward" | "bonds" | "bond-any" | "bond-aromatic" | "bond-crossed" | "bond-hydrogen" | "bond-dative" | "bond-double" | "bond-doublearomatic" | "bond-down" | "bond-single" | "bond-singlearomatic" | "bond-singledouble" | "bond-triple" | "bond-up" | "bond-updown" | "capital-t" | "chain" | "charge-minus" | "charge-plus" | "check" | "check-mark" | "chiral-flag" | "cip" | "clean" | "copies" | "copy" | "copy-image" | "copy-mol" | "copy-ket" | "copyMenu" | "cut" | "dearom" | "delete" | "deleteMenu" | "dropdown" | "enhanced-stereo" | "edit" | "elements-group" | "extended-table" | "erase" | "file-thumbnail" | "fullscreen-enter" | "fullscreen-exit" | "generic-groups" | "hand" | "compressedhand" | "help" | "history" | "image-frame" | "layout" | "logo" | "miew" | "macromolecules-mode" | "molecules-mode" | "clear" | "open" | "paste" | "editMenu" | "pasteNavBar" | "period-table" | "arrows" | "reaction-arrow-elliptical-arc-arrow-filled-bow" | "reaction-arrow-elliptical-arc-arrow-filled-triangle" | "reaction-arrow-elliptical-arc-arrow-open-angle" | "reaction-arrow-elliptical-arc-arrow-open-half-angle" | "reaction-arrow-open-angle" | "reaction-arrow-filled-triangle" | "reaction-arrow-filled-bow" | "reaction-arrow-dashed-open-angle" | "reaction-arrow-failed" | "reaction-arrow-retrosynthetic" | "reaction-arrow-both-ends-filled-triangle" | "reaction-arrow-equilibrium-filled-half-bow" | "reaction-arrow-equilibrium-filled-triangle" | "reaction-arrow-equilibrium-open-angle" | "reaction-arrow-unbalanced-equilibrium-filled-half-bow" | "reaction-arrow-unbalanced-equilibrium-open-half-angle" | "reaction-arrow-unbalanced-equilibrium-large-filled-half-bow" | "reaction-arrow-unbalanced-equilibrium-filled-half-triangle" | "reaction-arrow-multitail" | "reaction-automap" | "reaction-mapping-tools" | "reaction-map" | "reaction-plus" | "reaction-unmap" | "recognize" | "redo" | "rgroup" | "rgroup-attpoints" | "rgroup-fragment" | "rgroup-label" | "save" | "search" | "select-fragment" | "select-lasso" | "select-rectangle" | "settings" | "sgroup" | "template-0" | "template-1" | "template-2" | "template-3" | "template-4" | "template-5" | "template-6" | "template-7" | "template-dialog" | "template-lib" | "snake-mode" | "text" | "images" | "text-bold" | "text-italic" | "text-subscript" | "text-superscript" | "transform-flip-h" | "transform-flip-v" | "undo" | "zoom-in" | "zoom-out" | "zoom-reset" | "shapes" | "shape-ellipse" | "shape-rectangle" | "shape-polyline" | "shape-line" | "not-found" | "save-1" | "open-1" | "reset" | "close" | "general" | "general-white" | "stereo" | "stereo-white" | "atoms" | "atoms-white" | "bond-common" | "bonds-white" | "server" | "server-white" | "3dviewer" | "3dviewer-white" | "debugging" | "debugging-white" | "dropdown-indicator" | "text-special-symbols" | "chevron" | "open-window-paste-icon" | "open-window-upload-icon" | "bracket" | "error" | "rap-left-link" | "rap-middle-link" | "rap-right-link" | "arrows-left" | "arrows-right" | "sugar" | "base" | "phosphate" | "preset" | "nucleotide" | "peptide" | "chem" | "edit-filled" | "vertical-dots" | "expand" | "minimize-expansion" | "explicit-hydrogens" | "flex-layout-mode" | "snake-layout-mode" | "sequence-layout-mode" | "questionMark" | "no-highlight-cross" | "arrowsUpDown" | "plus" | "antisenseStrand" | "antisenseRnaStrand" | "antisenseDnaStrand" | "monomer-autochain" | "create-monomer" | "checkFilled" | "warningFilled" | undefined;
38
+ activeItem?: "α" | "β" | "γ" | "δ" | "ε" | "ζ" | "η" | "θ" | "ι" | "κ" | "λ" | "μ" | "ν" | "ξ" | "ο" | "π" | "ρ" | "σ" | "τ" | "υ" | "φ" | "χ" | "ψ" | "ω" | "Å" | "°" | "ħ" | "±" | "‰" | "√" | "←" | "→" | "←/" | "/→" | "↔" | "∏" | "∑" | "∞" | "∂" | "∆" | "∫" | "≈" | "=/" | "≤" | "≥" | "℉" | "℃" | "about" | "analyse" | "any-atom" | "arom" | "arrow-upward" | "bonds" | "bond-any" | "bond-aromatic" | "bond-crossed" | "bond-hydrogen" | "bond-dative" | "bond-double" | "bond-doublearomatic" | "bond-down" | "bond-single" | "bond-singlearomatic" | "bond-singledouble" | "bond-triple" | "bond-up" | "bond-updown" | "capital-t" | "chain" | "charge-minus" | "charge-plus" | "check" | "check-mark" | "chiral-flag" | "cip" | "clean" | "copies" | "copy" | "copy-image" | "copy-mol" | "copy-ket" | "copyMenu" | "cut" | "dearom" | "delete" | "deleteMenu" | "dropdown" | "enhanced-stereo" | "edit" | "elements-group" | "extended-table" | "erase" | "file-thumbnail" | "fullscreen-enter" | "fullscreen-exit" | "generic-groups" | "hand" | "compressedhand" | "help" | "history" | "image-frame" | "layout" | "logo" | "miew" | "macromolecules-mode" | "molecules-mode" | "clear" | "open" | "paste" | "editMenu" | "pasteNavBar" | "period-table" | "arrows" | "reaction-arrow-elliptical-arc-arrow-filled-bow" | "reaction-arrow-elliptical-arc-arrow-filled-triangle" | "reaction-arrow-elliptical-arc-arrow-open-angle" | "reaction-arrow-elliptical-arc-arrow-open-half-angle" | "reaction-arrow-open-angle" | "reaction-arrow-filled-triangle" | "reaction-arrow-filled-bow" | "reaction-arrow-dashed-open-angle" | "reaction-arrow-failed" | "reaction-arrow-retrosynthetic" | "reaction-arrow-both-ends-filled-triangle" | "reaction-arrow-equilibrium-filled-half-bow" | "reaction-arrow-equilibrium-filled-triangle" | "reaction-arrow-equilibrium-open-angle" | "reaction-arrow-unbalanced-equilibrium-filled-half-bow" | "reaction-arrow-unbalanced-equilibrium-open-half-angle" | "reaction-arrow-unbalanced-equilibrium-large-filled-half-bow" | "reaction-arrow-unbalanced-equilibrium-filled-half-triangle" | "reaction-arrow-multitail" | "reaction-automap" | "reaction-mapping-tools" | "reaction-map" | "reaction-plus" | "reaction-unmap" | "recognize" | "redo" | "rgroup" | "rgroup-attpoints" | "rgroup-fragment" | "rgroup-label" | "save" | "search" | "select-fragment" | "select-lasso" | "select-rectangle" | "settings" | "sgroup" | "template-0" | "template-1" | "template-2" | "template-3" | "template-4" | "template-5" | "template-6" | "template-7" | "template-dialog" | "template-lib" | "snake-mode" | "text" | "images" | "text-bold" | "text-italic" | "text-subscript" | "text-superscript" | "transform-flip-h" | "transform-flip-v" | "undo" | "zoom-in" | "zoom-out" | "zoom-reset" | "shapes" | "shape-ellipse" | "shape-rectangle" | "shape-polyline" | "shape-line" | "not-found" | "save-1" | "open-1" | "reset" | "close" | "general" | "general-white" | "stereo" | "stereo-white" | "atoms" | "atoms-white" | "bond-common" | "bonds-white" | "server" | "server-white" | "3dviewer" | "3dviewer-white" | "debugging" | "debugging-white" | "dropdown-indicator" | "text-special-symbols" | "chevron" | "open-window-paste-icon" | "open-window-upload-icon" | "bracket" | "error" | "rap-left-link" | "rap-middle-link" | "rap-right-link" | "arrows-left" | "arrows-right" | "sugar" | "base" | "phosphate" | "preset" | "nucleotide" | "peptide" | "chem" | "edit-filled" | "vertical-dots" | "expand" | "minimize-expansion" | "explicit-hydrogens" | "flex-layout-mode" | "snake-layout-mode" | "sequence-layout-mode" | "questionMark" | "no-highlight-cross" | "arrowsUpDown" | "plus" | "antisenseStrand" | "antisenseRnaStrand" | "antisenseDnaStrand" | "monomer-autochain" | "create-monomer" | "checkFilled" | "warningFilled" | "leavingGroup" | undefined;
39
39
  }>) => import("@emotion/react/jsx-runtime").JSX.Element;
40
40
  };
41
41
  export { Menu, MenuContext };
package/dist/index.js CHANGED
@@ -123,10 +123,10 @@ var initialState$3 = {
123
123
  unipositiveIonsValue: 140,
124
124
  oligonucleotidesValue: 200,
125
125
  app: {
126
- buildDate: "2025-08-25T12:47:10" ,
126
+ buildDate: "2025-09-03T08:20:18" ,
127
127
  indigoVersion: process.env.INDIGO_VERSION || '',
128
128
  indigoMachine: process.env.INDIGO_MACHINE || '',
129
- version: "3.8.0-dev.1"
129
+ version: "3.8.0-rc.1"
130
130
  }
131
131
  };
132
132
  var editorSlice = toolkit.createSlice({
@@ -6406,7 +6406,7 @@ var StyledModal$1 = _styled__default["default"](Modal, process.env.NODE_ENV ===
6406
6406
  styles: "& div.MuiPaper-root{background:white;min-height:400px;min-width:430px;}& .MuiDialogContent-root{overflow:hidden;height:100%;}"
6407
6407
  } : {
6408
6408
  name: "krpfk5",
6409
- styles: "& div.MuiPaper-root{background:white;min-height:400px;min-width:430px;}& .MuiDialogContent-root{overflow:hidden;height:100%;}/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlNhdmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlEb0IiLCJmaWxlIjoiU2F2ZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdC9qc3gtcnVudGltZVwiO1xyXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gKiBDb3B5cmlnaHQgMjAyMSBFUEFNIFN5c3RlbXNcclxuICpcclxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuICpcclxuICogICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbiAqXHJcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgTW9kYWwgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL21vZGFsXCI7XHJcbmltcG9ydCB7IFRleHRBcmVhIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9UZXh0QXJlYVwiO1xyXG5pbXBvcnQgeyBUZXh0SW5wdXRGaWVsZCB9IGZyb20gXCIuLi8uLi9zaGFyZWQvdGV4dElucHV0RmllbGRcIjtcclxuaW1wb3J0IHsgZ2V0UHJvcGVydGllc0J5Rm9ybWF0IH0gZnJvbSBcIi4uLy4uLy4uL2hlbHBlcnMvZm9ybWF0c1wiO1xyXG5pbXBvcnQgeyBBY3Rpb25CdXR0b24gfSBmcm9tIFwiLi4vLi4vc2hhcmVkL2FjdGlvbkJ1dHRvblwiO1xyXG5pbXBvcnQgeyBJY29uQnV0dG9uLCBJbmRpZ29Qcm92aWRlciB9IGZyb20gJ2tldGNoZXItcmVhY3QnO1xyXG5pbXBvcnQgeyBDaGVtaWNhbE1pbWVUeXBlLCBLZXRTZXJpYWxpemVyLCBDb3JlRWRpdG9yLCBLZXRjaGVyTG9nZ2VyLCBnZXRTdmdGcm9tRHJhd25TdHJ1Y3R1cmVzLCBpc0NsaXBib2FyZEFQSUF2YWlsYWJsZSwgbGVnYWN5Q29weSwgaXNIZWxtQ29tcGF0aWJsZSwgfSBmcm9tICdrZXRjaGVyLWNvcmUnO1xyXG5pbXBvcnQgeyBzYXZlQXMgfSBmcm9tICdmaWxlLXNhdmVyJztcclxuaW1wb3J0IHsgTG9hZGluZ0NpcmNsZXMgfSBmcm9tICcuLi9PcGVuL0FuYWx5emluZ0ZpbGUvTG9hZGluZ0NpcmNsZXMnO1xyXG5pbXBvcnQgeyBGb3JtLCBMb2FkZXIsIFByZXZpZXdDb250YWluZXIsIFJvdywgU3R5bGVkRHJvcGRvd24sIHN0eWxlc0ZvckV4cGFuZGVkLCBTdmdQcmV2aWV3LCB9IGZyb20gJy4vU2F2ZS5zdHlsZXMnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XHJcbmltcG9ydCB7IHVzZUFwcERpc3BhdGNoIH0gZnJvbSBcIi4uLy4uLy4uL2hvb2tzXCI7XHJcbmltcG9ydCB7IG9wZW5FcnJvck1vZGFsIH0gZnJvbSBcIi4uLy4uLy4uL3N0YXRlL21vZGFsXCI7XHJcbi8vIFRPRE86IE1ha2UgaXQgdHlwZSBzYWZlIGJ5IHVzaW5nIGBTdXBwb3J0ZWRGb3JtYXRzYCBhcyBpZFxyXG5jb25zdCBvcHRpb25zID0gW1xyXG4gICAgeyBpZDogJ2tldCcsIGxhYmVsOiAnS2V0JyB9LFxyXG4gICAgeyBpZDogJ21vbCcsIGxhYmVsOiAnTURMIE1vbGZpbGUgVjMwMDAnIH0sXHJcbiAgICB7IGlkOiAnc2VxdWVuY2UnLCBsYWJlbDogJ1NlcXVlbmNlICgxLWxldHRlciBjb2RlKScgfSxcclxuICAgIHsgaWQ6ICdzZXF1ZW5jZS0zLWxldHRlcicsIGxhYmVsOiAnU2VxdWVuY2UgKDMtbGV0dGVyIGNvZGUpJyB9LFxyXG4gICAgeyBpZDogJ2Zhc3RhJywgbGFiZWw6ICdGQVNUQScgfSxcclxuICAgIHsgaWQ6ICdpZHQnLCBsYWJlbDogJ0lEVCcgfSxcclxuICAgIHsgaWQ6ICdzdmcnLCBsYWJlbDogJ1NWRyBEb2N1bWVudCcgfSxcclxuICAgIHsgaWQ6ICdoZWxtJywgbGFiZWw6ICdIRUxNJyB9LFxyXG5dO1xyXG5jb25zdCBmb3JtYXREZXRlY3RvciA9IHtcclxuICAgIG1vbDogQ2hlbWljYWxNaW1lVHlwZS5Nb2wsXHJcbiAgICBmYXN0YTogQ2hlbWljYWxNaW1lVHlwZS5GQVNUQSxcclxuICAgIHNlcXVlbmNlOiBDaGVtaWNhbE1pbWVUeXBlLlNFUVVFTkNFLFxyXG4gICAgJ3NlcXVlbmNlLTMtbGV0dGVyJzogQ2hlbWljYWxNaW1lVHlwZS5QZXB0aWRlU2VxdWVuY2VUaHJlZUxldHRlcixcclxuICAgIGlkdDogQ2hlbWljYWxNaW1lVHlwZS5JRFQsXHJcbiAgICBoZWxtOiBDaGVtaWNhbE1pbWVUeXBlLkhFTE0sXHJcbn07XHJcbmNvbnN0IFN0eWxlZE1vZGFsID0gc3R5bGVkKE1vZGFsKSh7XHJcbiAgICAnJiBkaXYuTXVpUGFwZXItcm9vdCc6IHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAnd2hpdGUnLFxyXG4gICAgICAgIG1pbkhlaWdodDogJzQwMHB4JyxcclxuICAgICAgICBtaW5XaWR0aDogJzQzMHB4JyxcclxuICAgIH0sXHJcbiAgICAnJiAuTXVpRGlhbG9nQ29udGVudC1yb290Jzoge1xyXG4gICAgICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcclxuICAgICAgICBoZWlnaHQ6ICcxMDAlJyxcclxuICAgIH0sXHJcbn0pO1xyXG5leHBvcnQgY29uc3QgU2F2ZSA9ICh7IG9uQ2xvc2UsIGlzTW9kYWxPcGVuLCB9KSA9PiB7XHJcbiAgICBjb25zdCBkaXNwYXRjaCA9IHVzZUFwcERpc3BhdGNoKCk7XHJcbiAgICBjb25zdCBbY3VycmVudEZpbGVGb3JtYXQsIHNldEN1cnJlbnRGaWxlRm9ybWF0XSA9IHVzZVN0YXRlKCdrZXQnKTtcclxuICAgIGNvbnN0IFtjdXJyZW50RmlsZU5hbWUsIHNldEN1cnJlbnRGaWxlTmFtZV0gPSB1c2VTdGF0ZSgna2V0Y2hlcicpO1xyXG4gICAgY29uc3QgW3N0cnVjdCwgc2V0U3RydWN0XSA9IHVzZVN0YXRlKCcnKTtcclxuICAgIGNvbnN0IFtpc0xvYWRpbmcsIHNldElzTG9hZGluZ10gPSB1c2VTdGF0ZShmYWxzZSk7XHJcbiAgICBjb25zdCBbc3ZnRGF0YSwgc2V0U3ZnRGF0YV0gPSB1c2VTdGF0ZSgpO1xyXG4gICAgY29uc3QgaW5kaWdvID0gSW5kaWdvUHJvdmlkZXIuZ2V0SW5kaWdvKCk7XHJcbiAgICBjb25zdCBlZGl0b3IgPSBDb3JlRWRpdG9yLnByb3ZpZGVFZGl0b3JJbnN0YW5jZSgpO1xyXG4gICAgY29uc3QgaGFuZGxlU2VsZWN0Q2hhbmdlID0gYXN5bmMgKGZpbGVGb3JtYXQpID0+IHtcclxuICAgICAgICBzZXRDdXJyZW50RmlsZUZvcm1hdChmaWxlRm9ybWF0KTtcclxuICAgICAgICBjb25zdCBrZXRTZXJpYWxpemVyID0gbmV3IEtldFNlcmlhbGl6ZXIoKTtcclxuICAgICAgICBjb25zdCBzZXJpYWxpemVkS2V0ID0ga2V0U2VyaWFsaXplci5zZXJpYWxpemUoZWRpdG9yLmRyYXdpbmdFbnRpdGllc01hbmFnZXIubWljcm9tb2xlY3VsZXNIaWRkZW5FbnRpdGllcy5jbG9uZSgpLCBlZGl0b3IuZHJhd2luZ0VudGl0aWVzTWFuYWdlcik7XHJcbiAgICAgICAgc2V0U3ZnRGF0YSh1bmRlZmluZWQpO1xyXG4gICAgICAgIGlmIChmaWxlRm9ybWF0ID09PSAna2V0Jykge1xyXG4gICAgICAgICAgICBzZXRTdHJ1Y3Qoc2VyaWFsaXplZEtldCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGZpbGVGb3JtYXQgPT09ICdzdmcnKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHN2Z0RhdGEgPSBnZXRTdmdGcm9tRHJhd25TdHJ1Y3R1cmVzKGVkaXRvci5jYW52YXMsICdwcmV2aWV3Jyk7XHJcbiAgICAgICAgICAgIHNldFN2Z0RhdGEoc3ZnRGF0YSk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGZpbGVGb3JtYXQgPT09ICdoZWxtJyAmJlxyXG4gICAgICAgICAgICAhaXNIZWxtQ29tcGF0aWJsZShBcnJheS5mcm9tKGVkaXRvci5kcmF3aW5nRW50aXRpZXNNYW5hZ2VyLm1vbm9tZXJzLnZhbHVlcygpKSwgZWRpdG9yLm1vbm9tZXJzTGlicmFyeSkpIHtcclxuICAgICAgICAgICAgZWRpdG9yLmV2ZW50cy5lcnJvci5kaXNwYXRjaCgnU29tZSBvZiB0aGUgbW9ub21lcnMgZG8gbm90IGhhdmUgYWxpYXNlcyBpbiB0aGUgSEVMTSBDb3JlIExpYnJhcnkgLSB0aGV5IGFyZSBleHBvcnRlZCB1c2luZyBLZXRjaGVyIGFsaWFzZXMuJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHNldElzTG9hZGluZyh0cnVlKTtcclxuICAgICAgICAgICAgaWYgKGZpbGVGb3JtYXQgPT09ICdmYXN0YScgfHwgZmlsZUZvcm1hdCA9PT0gJ3NlcXVlbmNlJykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaXNWYWxpZCA9IGVkaXRvci5kcmF3aW5nRW50aXRpZXNNYW5hZ2VyLnZhbGlkYXRlSWZBcHBsaWNhYmxlRm9yRmFzdGEoKTtcclxuICAgICAgICAgICAgICAgIGlmICghaXNWYWxpZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRXJyb3IgZHVyaW5nIHNlcXVlbmNlIHR5cGUgcmVjb2duaXRpb24oUk5BLCBETkEgb3IgUGVwdGlkZSknKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBpbmRpZ28uY29udmVydCh7XHJcbiAgICAgICAgICAgICAgICBzdHJ1Y3Q6IHNlcmlhbGl6ZWRLZXQsXHJcbiAgICAgICAgICAgICAgICBvdXRwdXRfZm9ybWF0OiBmb3JtYXREZXRlY3RvcltmaWxlRm9ybWF0XSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHNldFN0cnVjdChyZXN1bHQuc3RydWN0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgIGxldCBzdHJpbmdFcnJvcjtcclxuICAgICAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcclxuICAgICAgICAgICAgICAgIHN0cmluZ0Vycm9yID0gZXJyb3IubWVzc2FnZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHN0cmluZ0Vycm9yID0gdHlwZW9mIGVycm9yID09PSAnc3RyaW5nJyA/IGVycm9yIDogSlNPTi5zdHJpbmdpZnkoZXJyb3IpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9ICdDb252ZXJ0IGVycm9yISAnICsgc3RyaW5nRXJyb3I7XHJcbiAgICAgICAgICAgIGRpc3BhdGNoKG9wZW5FcnJvck1vZGFsKGVycm9yTWVzc2FnZSkpO1xyXG4gICAgICAgICAgICBLZXRjaGVyTG9nZ2VyLmVycm9yKGVycm9yTWVzc2FnZSk7XHJcbiAgICAgICAgICAgIHNldEN1cnJlbnRGaWxlRm9ybWF0KCdrZXQnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZmluYWxseSB7XHJcbiAgICAgICAgICAgIHNldElzTG9hZGluZyhmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIGNvbnN0IGhhbmRsZUlucHV0Q2hhbmdlID0gKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgc2V0Q3VycmVudEZpbGVOYW1lKHZhbHVlKTtcclxuICAgIH07XHJcbiAgICBjb25zdCBoYW5kbGVTYXZlID0gKCkgPT4ge1xyXG4gICAgICAgIGxldCBibG9iUGFydDtcclxuICAgICAgICBpZiAoY3VycmVudEZpbGVGb3JtYXQgPT09ICdzdmcnKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHN2Z0RhdGEgPSBnZXRTdmdGcm9tRHJhd25TdHJ1Y3R1cmVzKGVkaXRvci5jYW52YXMsICdmaWxlJyk7XHJcbiAgICAgICAgICAgIGlmICghc3ZnRGF0YSkge1xyXG4gICAgICAgICAgICAgICAgb25DbG9zZSgpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGJsb2JQYXJ0ID0gc3ZnRGF0YTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGJsb2JQYXJ0ID0gc3RydWN0O1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW2Jsb2JQYXJ0XSwge1xyXG4gICAgICAgICAgICB0eXBlOiBnZXRQcm9wZXJ0aWVzQnlGb3JtYXQoY3VycmVudEZpbGVGb3JtYXQpLm1pbWUsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29uc3QgZm9ybWF0UHJvcGVydGllcyA9IGdldFByb3BlcnRpZXNCeUZvcm1hdChjdXJyZW50RmlsZUZvcm1hdCk7XHJcbiAgICAgICAgc2F2ZUFzKGJsb2IsIGAke2N1cnJlbnRGaWxlTmFtZX0ke2Zvcm1hdFByb3BlcnRpZXMuZXh0ZW5zaW9uc1swXX1gKTtcclxuICAgICAgICBvbkNsb3NlKCk7XHJcbiAgICB9O1xyXG4gICAgY29uc3QgaGFuZGxlQ29weSA9IChldmVudCkgPT4ge1xyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKGlzQ2xpcGJvYXJkQVBJQXZhaWxhYmxlKCkpIHtcclxuICAgICAgICAgICAgICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHN0cnVjdCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBsZWdhY3lDb3B5KGV2ZW50LmNsaXBib2FyZERhdGEsIHtcclxuICAgICAgICAgICAgICAgICAgICAndGV4dC9wbGFpbic6IHN0cnVjdCxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgIEtldGNoZXJMb2dnZXIuZXJyb3IoJ2NvcHlBcy5qczo6Y29weUFzJywgZSk7XHJcbiAgICAgICAgICAgIGRpc3BhdGNoKG9wZW5FcnJvck1vZGFsKCdUaGlzIGZlYXR1cmUgaXMgbm90IGF2YWlsYWJsZSBpbiB5b3VyIGJyb3dzZXInKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgaWYgKGN1cnJlbnRGaWxlRm9ybWF0ID09PSAna2V0Jykge1xyXG4gICAgICAgICAgICBjb25zdCBrZXRTZXJpYWxpemVyID0gbmV3IEtldFNlcmlhbGl6ZXIoKTtcclxuICAgICAgICAgICAgY29uc3Qgc2VyaWFsaXplZEtldCA9IGtldFNlcmlhbGl6ZXIuc2VyaWFsaXplKGVkaXRvci5kcmF3aW5nRW50aXRpZXNNYW5hZ2VyLm1pY3JvbW9sZWN1bGVzSGlkZGVuRW50aXRpZXMuY2xvbmUoKSwgZWRpdG9yLmRyYXdpbmdFbnRpdGllc01hbmFnZXIpO1xyXG4gICAgICAgICAgICBzZXRTdHJ1Y3Qoc2VyaWFsaXplZEtldCk7XHJcbiAgICAgICAgfVxyXG4gICAgfSwgW2N1cnJlbnRGaWxlRm9ybWF0XSk7XHJcbiAgICByZXR1cm4gKF9qc3hzKFN0eWxlZE1vZGFsLCB7IHRpdGxlOiBcInNhdmUgc3RydWN0dXJlXCIsIGlzT3BlbjogaXNNb2RhbE9wZW4sIG9uQ2xvc2U6IG9uQ2xvc2UsIHRlc3RJZDogXCJzYXZlLXN0cnVjdHVyZS1kaWFsb2dcIiwgY2hpbGRyZW46IFtfanN4KE1vZGFsLkNvbnRlbnQsIHsgY2hpbGRyZW46IF9qc3hzKEZvcm0sIHsgb25TdWJtaXQ6IGhhbmRsZVNhdmUsIGlkOiBcInNhdmVcIiwgY2hpbGRyZW46IFtfanN4cyhSb3csIHsgc3R5bGU6IHsgcGFkZGluZzogJzEycHggMTJweCAxMHB4JyB9LCBjaGlsZHJlbjogW19qc3goXCJkaXZcIiwgeyBjaGlsZHJlbjogX2pzeChUZXh0SW5wdXRGaWVsZCwgeyB2YWx1ZTogY3VycmVudEZpbGVOYW1lLCBpZDogXCJmaWxlbmFtZVwiLCBvbkNoYW5nZTogaGFuZGxlSW5wdXRDaGFuZ2UsIGxhYmVsOiBcIkZpbGUgbmFtZTpcIiwgXCJkYXRhLXRlc3RpZFwiOiBcImZpbGVuYW1lLWlucHV0XCIgfSkgfSksIF9qc3goU3R5bGVkRHJvcGRvd24sIHsgbGFiZWw6IFwiRmlsZSBmb3JtYXQ6XCIsIG9wdGlvbnM6IG9wdGlvbnMsIGN1cnJlbnRTZWxlY3Rpb246IGN1cnJlbnRGaWxlRm9ybWF0LCBzZWxlY3Rpb25IYW5kbGVyOiBoYW5kbGVTZWxlY3RDaGFuZ2UsIGN1c3RvbVN0eWxlc0ZvckV4cGFuZGVkOiBzdHlsZXNGb3JFeHBhbmRlZCwgdGVzdElkOiBcImZpbGUtZm9ybWF0LWxpc3RcIiB9KV0gfSksIHN2Z0RhdGEgPyAoX2pzeChTdmdQcmV2aWV3LCB7IGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MOiB7IF9faHRtbDogc3ZnRGF0YSB9LCBcImRhdGEtdGVzdGlkXCI6IFwicHJldmlldy1hcmVhXCIgfSkpIDogKF9qc3hzKFByZXZpZXdDb250YWluZXIsIHsgY2hpbGRyZW46IFtfanN4KFRleHRBcmVhLCB7IHRlc3RJZDogXCJwcmV2aWV3LWFyZWFcIiwgdmFsdWU6IHN0cnVjdCwgcmVhZG9ubHk6IHRydWUgfSksIF9qc3goSWNvbkJ1dHRvbiwgeyBvbkNsaWNrOiBoYW5kbGVDb3B5LCBpY29uTmFtZTogXCJjb3B5XCIsIHRpdGxlOiBcIkNvcHkgdG8gY2xpcGJvYXJkXCIsIHRlc3RJZDogXCJjb3B5LXRvLWNsaXBib2FyZFwiIH0pLCBpc0xvYWRpbmcgJiYgKF9qc3goTG9hZGVyLCB7IGNoaWxkcmVuOiBfanN4KExvYWRpbmdDaXJjbGVzLCB7fSkgfSkpXSB9KSldIH0pIH0pLCBfanN4cyhNb2RhbC5Gb290ZXIsIHsgY2hpbGRyZW46IFtfanN4KEFjdGlvbkJ1dHRvbiwgeyBsYWJlbDogXCJDYW5jZWxcIiwgc3R5bGVUeXBlOiBcInNlY29uZGFyeVwiLCBjbGlja0hhbmRsZXI6IG9uQ2xvc2UsIFwiZGF0YS10ZXN0aWRcIjogXCJjYW5jZWwtYnV0dG9uXCIgfSksIF9qc3goQWN0aW9uQnV0dG9uLCB7IGxhYmVsOiBcIlNhdmVcIiwgY2xpY2tIYW5kbGVyOiBoYW5kbGVTYXZlLCBkaXNhYmxlZDogIWN1cnJlbnRGaWxlTmFtZSwgXCJkYXRhLXRlc3RpZFwiOiBcInNhdmUtYnV0dG9uXCIgfSldIH0pXSB9KSk7XHJcbn07XHJcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVNhdmUuanMubWFwIl19 */",
6409
+ styles: "& div.MuiPaper-root{background:white;min-height:400px;min-width:430px;}& .MuiDialogContent-root{overflow:hidden;height:100%;}/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlNhdmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlEb0IiLCJmaWxlIjoiU2F2ZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJAZW1vdGlvbi9yZWFjdC9qc3gtcnVudGltZVwiO1xyXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gKiBDb3B5cmlnaHQgMjAyMSBFUEFNIFN5c3RlbXNcclxuICpcclxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuICpcclxuICogICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbiAqXHJcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VMYXlvdXRFZmZlY3QsIHVzZVN0YXRlLCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XHJcbmltcG9ydCB7IE1vZGFsIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9tb2RhbFwiO1xyXG5pbXBvcnQgeyBUZXh0QXJlYSB9IGZyb20gXCIuLi8uLi9zaGFyZWQvVGV4dEFyZWFcIjtcclxuaW1wb3J0IHsgVGV4dElucHV0RmllbGQgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3RleHRJbnB1dEZpZWxkXCI7XHJcbmltcG9ydCB7IGdldFByb3BlcnRpZXNCeUZvcm1hdCB9IGZyb20gXCIuLi8uLi8uLi9oZWxwZXJzL2Zvcm1hdHNcIjtcclxuaW1wb3J0IHsgQWN0aW9uQnV0dG9uIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9hY3Rpb25CdXR0b25cIjtcclxuaW1wb3J0IHsgSWNvbkJ1dHRvbiwgSW5kaWdvUHJvdmlkZXIsIEtFVENIRVJfTUFDUk9NT0xFQ1VMRVNfUk9PVF9OT0RFX1NFTEVDVE9SLCB9IGZyb20gJ2tldGNoZXItcmVhY3QnO1xyXG5pbXBvcnQgeyBDaGVtaWNhbE1pbWVUeXBlLCBLZXRTZXJpYWxpemVyLCBDb3JlRWRpdG9yLCBLZXRjaGVyTG9nZ2VyLCBnZXRTdmdGcm9tRHJhd25TdHJ1Y3R1cmVzLCBpc0NsaXBib2FyZEFQSUF2YWlsYWJsZSwgbGVnYWN5Q29weSwgaXNIZWxtQ29tcGF0aWJsZSwgfSBmcm9tICdrZXRjaGVyLWNvcmUnO1xyXG5pbXBvcnQgeyBzYXZlQXMgfSBmcm9tICdmaWxlLXNhdmVyJztcclxuaW1wb3J0IHsgTG9hZGluZ0NpcmNsZXMgfSBmcm9tICcuLi9PcGVuL0FuYWx5emluZ0ZpbGUvTG9hZGluZ0NpcmNsZXMnO1xyXG5pbXBvcnQgeyBGb3JtLCBMb2FkZXIsIFByZXZpZXdDb250YWluZXIsIFJvdywgU3R5bGVkRHJvcGRvd24sIHN0eWxlc0ZvckV4cGFuZGVkLCBTdmdQcmV2aWV3LCB9IGZyb20gJy4vU2F2ZS5zdHlsZXMnO1xyXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XHJcbmltcG9ydCB7IHVzZUFwcERpc3BhdGNoIH0gZnJvbSBcIi4uLy4uLy4uL2hvb2tzXCI7XHJcbmltcG9ydCB7IG9wZW5FcnJvck1vZGFsIH0gZnJvbSBcIi4uLy4uLy4uL3N0YXRlL21vZGFsXCI7XHJcbi8vIFRPRE86IE1ha2UgaXQgdHlwZSBzYWZlIGJ5IHVzaW5nIGBTdXBwb3J0ZWRGb3JtYXRzYCBhcyBpZFxyXG5jb25zdCBvcHRpb25zID0gW1xyXG4gICAgeyBpZDogJ2tldCcsIGxhYmVsOiAnS2V0JyB9LFxyXG4gICAgeyBpZDogJ21vbCcsIGxhYmVsOiAnTURMIE1vbGZpbGUgVjMwMDAnIH0sXHJcbiAgICB7IGlkOiAnc2VxdWVuY2UnLCBsYWJlbDogJ1NlcXVlbmNlICgxLWxldHRlciBjb2RlKScgfSxcclxuICAgIHsgaWQ6ICdzZXF1ZW5jZS0zLWxldHRlcicsIGxhYmVsOiAnU2VxdWVuY2UgKDMtbGV0dGVyIGNvZGUpJyB9LFxyXG4gICAgeyBpZDogJ2Zhc3RhJywgbGFiZWw6ICdGQVNUQScgfSxcclxuICAgIHsgaWQ6ICdpZHQnLCBsYWJlbDogJ0lEVCcgfSxcclxuICAgIHsgaWQ6ICdzdmcnLCBsYWJlbDogJ1NWRyBEb2N1bWVudCcgfSxcclxuICAgIHsgaWQ6ICdoZWxtJywgbGFiZWw6ICdIRUxNJyB9LFxyXG5dO1xyXG5jb25zdCBmb3JtYXREZXRlY3RvciA9IHtcclxuICAgIG1vbDogQ2hlbWljYWxNaW1lVHlwZS5Nb2wsXHJcbiAgICBmYXN0YTogQ2hlbWljYWxNaW1lVHlwZS5GQVNUQSxcclxuICAgIHNlcXVlbmNlOiBDaGVtaWNhbE1pbWVUeXBlLlNFUVVFTkNFLFxyXG4gICAgJ3NlcXVlbmNlLTMtbGV0dGVyJzogQ2hlbWljYWxNaW1lVHlwZS5QZXB0aWRlU2VxdWVuY2VUaHJlZUxldHRlcixcclxuICAgIGlkdDogQ2hlbWljYWxNaW1lVHlwZS5JRFQsXHJcbiAgICBoZWxtOiBDaGVtaWNhbE1pbWVUeXBlLkhFTE0sXHJcbn07XHJcbmNvbnN0IFN0eWxlZE1vZGFsID0gc3R5bGVkKE1vZGFsKSh7XHJcbiAgICAnJiBkaXYuTXVpUGFwZXItcm9vdCc6IHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiAnd2hpdGUnLFxyXG4gICAgICAgIG1pbkhlaWdodDogJzQwMHB4JyxcclxuICAgICAgICBtaW5XaWR0aDogJzQzMHB4JyxcclxuICAgIH0sXHJcbiAgICAnJiAuTXVpRGlhbG9nQ29udGVudC1yb290Jzoge1xyXG4gICAgICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcclxuICAgICAgICBoZWlnaHQ6ICcxMDAlJyxcclxuICAgIH0sXHJcbn0pO1xyXG5leHBvcnQgY29uc3QgU2F2ZSA9ICh7IG9uQ2xvc2UsIGlzTW9kYWxPcGVuLCB9KSA9PiB7XHJcbiAgICBjb25zdCBkaXNwYXRjaCA9IHVzZUFwcERpc3BhdGNoKCk7XHJcbiAgICBjb25zdCBbY3VycmVudEZpbGVGb3JtYXQsIHNldEN1cnJlbnRGaWxlRm9ybWF0XSA9IHVzZVN0YXRlKCdrZXQnKTtcclxuICAgIGNvbnN0IFtjdXJyZW50RmlsZU5hbWUsIHNldEN1cnJlbnRGaWxlTmFtZV0gPSB1c2VTdGF0ZSgna2V0Y2hlcicpO1xyXG4gICAgY29uc3QgW3N0cnVjdCwgc2V0U3RydWN0XSA9IHVzZVN0YXRlKCcnKTtcclxuICAgIGNvbnN0IFtpc0xvYWRpbmcsIHNldElzTG9hZGluZ10gPSB1c2VTdGF0ZShmYWxzZSk7XHJcbiAgICBjb25zdCBbc3ZnRGF0YSwgc2V0U3ZnRGF0YV0gPSB1c2VTdGF0ZSgpO1xyXG4gICAgY29uc3QgaW5kaWdvID0gSW5kaWdvUHJvdmlkZXIuZ2V0SW5kaWdvKCk7XHJcbiAgICBjb25zdCBlZGl0b3IgPSBDb3JlRWRpdG9yLnByb3ZpZGVFZGl0b3JJbnN0YW5jZSgpO1xyXG4gICAgY29uc3QgZWRpdG9yT2Zmc2V0UmVmID0gdXNlUmVmKHsgeDogMCwgeTogMCB9KTtcclxuICAgIC8vIGNhY2hlIHRoZSBlZGl0b3Igcm9vdCBlbGVtZW50IHNvIHdlIGRvbid0IHF1ZXJ5IHRoZSBET00gcmVwZWF0ZWRseVxyXG4gICAgY29uc3QgZWRpdG9yUm9vdFJlZiA9IHVzZVJlZihudWxsKTtcclxuICAgIGNvbnN0IGhhbmRsZVNlbGVjdENoYW5nZSA9IGFzeW5jIChmaWxlRm9ybWF0KSA9PiB7XHJcbiAgICAgICAgc2V0Q3VycmVudEZpbGVGb3JtYXQoZmlsZUZvcm1hdCk7XHJcbiAgICAgICAgY29uc3Qga2V0U2VyaWFsaXplciA9IG5ldyBLZXRTZXJpYWxpemVyKCk7XHJcbiAgICAgICAgY29uc3Qgc2VyaWFsaXplZEtldCA9IGtldFNlcmlhbGl6ZXIuc2VyaWFsaXplKGVkaXRvci5kcmF3aW5nRW50aXRpZXNNYW5hZ2VyLm1pY3JvbW9sZWN1bGVzSGlkZGVuRW50aXRpZXMuY2xvbmUoKSwgZWRpdG9yLmRyYXdpbmdFbnRpdGllc01hbmFnZXIpO1xyXG4gICAgICAgIHNldFN2Z0RhdGEodW5kZWZpbmVkKTtcclxuICAgICAgICBpZiAoZmlsZUZvcm1hdCA9PT0gJ2tldCcpIHtcclxuICAgICAgICAgICAgc2V0U3RydWN0KHNlcmlhbGl6ZWRLZXQpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChmaWxlRm9ybWF0ID09PSAnc3ZnJykge1xyXG4gICAgICAgICAgICBjb25zdCBzdmdEYXRhID0gZ2V0U3ZnRnJvbURyYXduU3RydWN0dXJlcyhlZGl0b3IuY2FudmFzLCAncHJldmlldycsIHtcclxuICAgICAgICAgICAgICAgIGhvcml6b250YWw6IGVkaXRvck9mZnNldFJlZi5jdXJyZW50LngsXHJcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbDogZWRpdG9yT2Zmc2V0UmVmLmN1cnJlbnQueSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHNldFN2Z0RhdGEoc3ZnRGF0YSk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGZpbGVGb3JtYXQgPT09ICdoZWxtJyAmJlxyXG4gICAgICAgICAgICAhaXNIZWxtQ29tcGF0aWJsZShBcnJheS5mcm9tKGVkaXRvci5kcmF3aW5nRW50aXRpZXNNYW5hZ2VyLm1vbm9tZXJzLnZhbHVlcygpKSwgZWRpdG9yLm1vbm9tZXJzTGlicmFyeSkpIHtcclxuICAgICAgICAgICAgZWRpdG9yLmV2ZW50cy5lcnJvci5kaXNwYXRjaCgnU29tZSBvZiB0aGUgbW9ub21lcnMgZG8gbm90IGhhdmUgYWxpYXNlcyBpbiB0aGUgSEVMTSBDb3JlIExpYnJhcnkgLSB0aGV5IGFyZSBleHBvcnRlZCB1c2luZyBLZXRjaGVyIGFsaWFzZXMuJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHNldElzTG9hZGluZyh0cnVlKTtcclxuICAgICAgICAgICAgaWYgKGZpbGVGb3JtYXQgPT09ICdmYXN0YScgfHwgZmlsZUZvcm1hdCA9PT0gJ3NlcXVlbmNlJykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaXNWYWxpZCA9IGVkaXRvci5kcmF3aW5nRW50aXRpZXNNYW5hZ2VyLnZhbGlkYXRlSWZBcHBsaWNhYmxlRm9yRmFzdGEoKTtcclxuICAgICAgICAgICAgICAgIGlmICghaXNWYWxpZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRXJyb3IgZHVyaW5nIHNlcXVlbmNlIHR5cGUgcmVjb2duaXRpb24oUk5BLCBETkEgb3IgUGVwdGlkZSknKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBpbmRpZ28uY29udmVydCh7XHJcbiAgICAgICAgICAgICAgICBzdHJ1Y3Q6IHNlcmlhbGl6ZWRLZXQsXHJcbiAgICAgICAgICAgICAgICBvdXRwdXRfZm9ybWF0OiBmb3JtYXREZXRlY3RvcltmaWxlRm9ybWF0XSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHNldFN0cnVjdChyZXN1bHQuc3RydWN0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgIGxldCBzdHJpbmdFcnJvcjtcclxuICAgICAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcclxuICAgICAgICAgICAgICAgIHN0cmluZ0Vycm9yID0gZXJyb3IubWVzc2FnZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHN0cmluZ0Vycm9yID0gdHlwZW9mIGVycm9yID09PSAnc3RyaW5nJyA/IGVycm9yIDogSlNPTi5zdHJpbmdpZnkoZXJyb3IpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9ICdDb252ZXJ0IGVycm9yISAnICsgc3RyaW5nRXJyb3I7XHJcbiAgICAgICAgICAgIGRpc3BhdGNoKG9wZW5FcnJvck1vZGFsKGVycm9yTWVzc2FnZSkpO1xyXG4gICAgICAgICAgICBLZXRjaGVyTG9nZ2VyLmVycm9yKGVycm9yTWVzc2FnZSk7XHJcbiAgICAgICAgICAgIHNldEN1cnJlbnRGaWxlRm9ybWF0KCdrZXQnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZmluYWxseSB7XHJcbiAgICAgICAgICAgIHNldElzTG9hZGluZyhmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIGNvbnN0IGhhbmRsZUlucHV0Q2hhbmdlID0gKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgc2V0Q3VycmVudEZpbGVOYW1lKHZhbHVlKTtcclxuICAgIH07XHJcbiAgICBjb25zdCBjYWxjdWxhdGVPZmZzZXQgPSAoKSA9PiB7XHJcbiAgICAgICAgLy8gY2FjaGUgdGhlIGVkaXRvciByb290IGVsZW1lbnQgdG8gYXZvaWQgcmVwZWF0ZWQgZG9jdW1lbnQucXVlcnlTZWxlY3RvciBjYWxsc1xyXG4gICAgICAgIGlmICghZWRpdG9yUm9vdFJlZi5jdXJyZW50KSB7XHJcbiAgICAgICAgICAgIGVkaXRvclJvb3RSZWYuY3VycmVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoS0VUQ0hFUl9NQUNST01PTEVDVUxFU19ST09UX05PREVfU0VMRUNUT1IpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBlZGl0b3JSb290RWxlbWVudCA9IGVkaXRvclJvb3RSZWYuY3VycmVudDtcclxuICAgICAgICBpZiAoIWVkaXRvclJvb3RFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIGlmIChlZGl0b3JPZmZzZXRSZWYuY3VycmVudC54ICE9PSAwIHx8IGVkaXRvck9mZnNldFJlZi5jdXJyZW50LnkgIT09IDApIHtcclxuICAgICAgICAgICAgICAgIGVkaXRvck9mZnNldFJlZi5jdXJyZW50ID0geyB4OiAwLCB5OiAwIH07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCB7IHggPSAwLCB5ID0gMCB9ID0gZWRpdG9yUm9vdEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgICAgaWYgKGVkaXRvck9mZnNldFJlZi5jdXJyZW50LnggPT09IHggJiYgZWRpdG9yT2Zmc2V0UmVmLmN1cnJlbnQueSA9PT0geSlcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIGVkaXRvck9mZnNldFJlZi5jdXJyZW50ID0geyB4LCB5IH07XHJcbiAgICB9O1xyXG4gICAgY29uc3QgaGFuZGxlU2F2ZSA9ICgpID0+IHtcclxuICAgICAgICBsZXQgYmxvYlBhcnQ7XHJcbiAgICAgICAgaWYgKGN1cnJlbnRGaWxlRm9ybWF0ID09PSAnc3ZnJykge1xyXG4gICAgICAgICAgICBjb25zdCBzdmdEYXRhID0gZ2V0U3ZnRnJvbURyYXduU3RydWN0dXJlcyhlZGl0b3IuY2FudmFzLCAnZmlsZScsIHtcclxuICAgICAgICAgICAgICAgIGhvcml6b250YWw6IGVkaXRvck9mZnNldFJlZi5jdXJyZW50LngsXHJcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbDogZWRpdG9yT2Zmc2V0UmVmLmN1cnJlbnQueSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGlmICghc3ZnRGF0YSkge1xyXG4gICAgICAgICAgICAgICAgb25DbG9zZSgpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGJsb2JQYXJ0ID0gc3ZnRGF0YTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGJsb2JQYXJ0ID0gc3RydWN0O1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW2Jsb2JQYXJ0XSwge1xyXG4gICAgICAgICAgICB0eXBlOiBnZXRQcm9wZXJ0aWVzQnlGb3JtYXQoY3VycmVudEZpbGVGb3JtYXQpLm1pbWUsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29uc3QgZm9ybWF0UHJvcGVydGllcyA9IGdldFByb3BlcnRpZXNCeUZvcm1hdChjdXJyZW50RmlsZUZvcm1hdCk7XHJcbiAgICAgICAgc2F2ZUFzKGJsb2IsIGAke2N1cnJlbnRGaWxlTmFtZX0ke2Zvcm1hdFByb3BlcnRpZXMuZXh0ZW5zaW9uc1swXX1gKTtcclxuICAgICAgICBvbkNsb3NlKCk7XHJcbiAgICB9O1xyXG4gICAgY29uc3QgaGFuZGxlQ29weSA9IChldmVudCkgPT4ge1xyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKGlzQ2xpcGJvYXJkQVBJQXZhaWxhYmxlKCkpIHtcclxuICAgICAgICAgICAgICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHN0cnVjdCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBsZWdhY3lDb3B5KGV2ZW50LmNsaXBib2FyZERhdGEsIHtcclxuICAgICAgICAgICAgICAgICAgICAndGV4dC9wbGFpbic6IHN0cnVjdCxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgIEtldGNoZXJMb2dnZXIuZXJyb3IoJ2NvcHlBcy5qczo6Y29weUFzJywgZSk7XHJcbiAgICAgICAgICAgIGRpc3BhdGNoKG9wZW5FcnJvck1vZGFsKCdUaGlzIGZlYXR1cmUgaXMgbm90IGF2YWlsYWJsZSBpbiB5b3VyIGJyb3dzZXInKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgY2FsY3VsYXRlT2Zmc2V0KCk7XHJcbiAgICB9LCBbXSk7XHJcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgIGlmIChjdXJyZW50RmlsZUZvcm1hdCA9PT0gJ2tldCcpIHtcclxuICAgICAgICAgICAgY29uc3Qga2V0U2VyaWFsaXplciA9IG5ldyBLZXRTZXJpYWxpemVyKCk7XHJcbiAgICAgICAgICAgIGNvbnN0IHNlcmlhbGl6ZWRLZXQgPSBrZXRTZXJpYWxpemVyLnNlcmlhbGl6ZShlZGl0b3IuZHJhd2luZ0VudGl0aWVzTWFuYWdlci5taWNyb21vbGVjdWxlc0hpZGRlbkVudGl0aWVzLmNsb25lKCksIGVkaXRvci5kcmF3aW5nRW50aXRpZXNNYW5hZ2VyKTtcclxuICAgICAgICAgICAgc2V0U3RydWN0KHNlcmlhbGl6ZWRLZXQpO1xyXG4gICAgICAgIH1cclxuICAgIH0sIFtjdXJyZW50RmlsZUZvcm1hdF0pO1xyXG4gICAgcmV0dXJuIChfanN4cyhTdHlsZWRNb2RhbCwgeyB0aXRsZTogXCJzYXZlIHN0cnVjdHVyZVwiLCBpc09wZW46IGlzTW9kYWxPcGVuLCBvbkNsb3NlOiBvbkNsb3NlLCB0ZXN0SWQ6IFwic2F2ZS1zdHJ1Y3R1cmUtZGlhbG9nXCIsIGNoaWxkcmVuOiBbX2pzeChNb2RhbC5Db250ZW50LCB7IGNoaWxkcmVuOiBfanN4cyhGb3JtLCB7IG9uU3VibWl0OiBoYW5kbGVTYXZlLCBpZDogXCJzYXZlXCIsIGNoaWxkcmVuOiBbX2pzeHMoUm93LCB7IHN0eWxlOiB7IHBhZGRpbmc6ICcxMnB4IDEycHggMTBweCcgfSwgY2hpbGRyZW46IFtfanN4KFwiZGl2XCIsIHsgY2hpbGRyZW46IF9qc3goVGV4dElucHV0RmllbGQsIHsgdmFsdWU6IGN1cnJlbnRGaWxlTmFtZSwgaWQ6IFwiZmlsZW5hbWVcIiwgb25DaGFuZ2U6IGhhbmRsZUlucHV0Q2hhbmdlLCBsYWJlbDogXCJGaWxlIG5hbWU6XCIsIFwiZGF0YS10ZXN0aWRcIjogXCJmaWxlbmFtZS1pbnB1dFwiIH0pIH0pLCBfanN4KFN0eWxlZERyb3Bkb3duLCB7IGxhYmVsOiBcIkZpbGUgZm9ybWF0OlwiLCBvcHRpb25zOiBvcHRpb25zLCBjdXJyZW50U2VsZWN0aW9uOiBjdXJyZW50RmlsZUZvcm1hdCwgc2VsZWN0aW9uSGFuZGxlcjogaGFuZGxlU2VsZWN0Q2hhbmdlLCBjdXN0b21TdHlsZXNGb3JFeHBhbmRlZDogc3R5bGVzRm9yRXhwYW5kZWQsIHRlc3RJZDogXCJmaWxlLWZvcm1hdC1saXN0XCIgfSldIH0pLCBzdmdEYXRhID8gKF9qc3goU3ZnUHJldmlldywgeyBkYW5nZXJvdXNseVNldElubmVySFRNTDogeyBfX2h0bWw6IHN2Z0RhdGEgfSwgXCJkYXRhLXRlc3RpZFwiOiBcInByZXZpZXctYXJlYVwiIH0pKSA6IChfanN4cyhQcmV2aWV3Q29udGFpbmVyLCB7IGNoaWxkcmVuOiBbX2pzeChUZXh0QXJlYSwgeyB0ZXN0SWQ6IFwicHJldmlldy1hcmVhXCIsIHZhbHVlOiBzdHJ1Y3QsIHJlYWRvbmx5OiB0cnVlIH0pLCBfanN4KEljb25CdXR0b24sIHsgb25DbGljazogaGFuZGxlQ29weSwgaWNvbk5hbWU6IFwiY29weVwiLCB0aXRsZTogXCJDb3B5IHRvIGNsaXBib2FyZFwiLCB0ZXN0SWQ6IFwiY29weS10by1jbGlwYm9hcmRcIiB9KSwgaXNMb2FkaW5nICYmIChfanN4KExvYWRlciwgeyBjaGlsZHJlbjogX2pzeChMb2FkaW5nQ2lyY2xlcywge30pIH0pKV0gfSkpXSB9KSB9KSwgX2pzeHMoTW9kYWwuRm9vdGVyLCB7IGNoaWxkcmVuOiBbX2pzeChBY3Rpb25CdXR0b24sIHsgbGFiZWw6IFwiQ2FuY2VsXCIsIHN0eWxlVHlwZTogXCJzZWNvbmRhcnlcIiwgY2xpY2tIYW5kbGVyOiBvbkNsb3NlLCBcImRhdGEtdGVzdGlkXCI6IFwiY2FuY2VsLWJ1dHRvblwiIH0pLCBfanN4KEFjdGlvbkJ1dHRvbiwgeyBsYWJlbDogXCJTYXZlXCIsIGNsaWNrSGFuZGxlcjogaGFuZGxlU2F2ZSwgZGlzYWJsZWQ6ICFjdXJyZW50RmlsZU5hbWUsIFwiZGF0YS10ZXN0aWRcIjogXCJzYXZlLWJ1dHRvblwiIH0pXSB9KV0gfSkpO1xyXG59O1xyXG4vLyMgc291cmNlTWFwcGluZ1VSTD1TYXZlLmpzLm1hcCJdfQ== */",
6410
6410
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__$i
6411
6411
  });
6412
6412
  var Save = function Save(_ref) {
@@ -6435,6 +6435,11 @@ var Save = function Save(_ref) {
6435
6435
  setSvgData = _useState10[1];
6436
6436
  var indigo = ketcherReact.IndigoProvider.getIndigo();
6437
6437
  var editor = ketcherCore.CoreEditor.provideEditorInstance();
6438
+ var editorOffsetRef = React.useRef({
6439
+ x: 0,
6440
+ y: 0
6441
+ });
6442
+ var editorRootRef = React.useRef(null);
6438
6443
  var handleSelectChange = function () {
6439
6444
  var _ref2 = _asyncToGenerator__default["default"]( _regeneratorRuntime__default["default"].mark(function _callee(fileFormat) {
6440
6445
  var ketSerializer, serializedKet, _svgData, isValid, result, stringError, errorMessage;
@@ -6456,7 +6461,10 @@ var Save = function Save(_ref) {
6456
6461
  _context.next = 11;
6457
6462
  break;
6458
6463
  }
6459
- _svgData = ketcherCore.getSvgFromDrawnStructures(editor.canvas, 'preview');
6464
+ _svgData = ketcherCore.getSvgFromDrawnStructures(editor.canvas, 'preview', {
6465
+ horizontal: editorOffsetRef.current.x,
6466
+ vertical: editorOffsetRef.current.y
6467
+ });
6460
6468
  setSvgData(_svgData);
6461
6469
  return _context.abrupt("return");
6462
6470
  case 11:
@@ -6515,10 +6523,38 @@ var Save = function Save(_ref) {
6515
6523
  var handleInputChange = function handleInputChange(value) {
6516
6524
  setCurrentFileName(value);
6517
6525
  };
6526
+ var calculateOffset = function calculateOffset() {
6527
+ if (!editorRootRef.current) {
6528
+ editorRootRef.current = document.querySelector(ketcherReact.KETCHER_MACROMOLECULES_ROOT_NODE_SELECTOR);
6529
+ }
6530
+ var editorRootElement = editorRootRef.current;
6531
+ if (!editorRootElement) {
6532
+ if (editorOffsetRef.current.x !== 0 || editorOffsetRef.current.y !== 0) {
6533
+ editorOffsetRef.current = {
6534
+ x: 0,
6535
+ y: 0
6536
+ };
6537
+ }
6538
+ return;
6539
+ }
6540
+ var _editorRootElement$ge = editorRootElement.getBoundingClientRect(),
6541
+ _editorRootElement$ge2 = _editorRootElement$ge.x,
6542
+ x = _editorRootElement$ge2 === void 0 ? 0 : _editorRootElement$ge2,
6543
+ _editorRootElement$ge3 = _editorRootElement$ge.y,
6544
+ y = _editorRootElement$ge3 === void 0 ? 0 : _editorRootElement$ge3;
6545
+ if (editorOffsetRef.current.x === x && editorOffsetRef.current.y === y) return;
6546
+ editorOffsetRef.current = {
6547
+ x: x,
6548
+ y: y
6549
+ };
6550
+ };
6518
6551
  var handleSave = function handleSave() {
6519
6552
  var blobPart;
6520
6553
  if (currentFileFormat === 'svg') {
6521
- var _svgData2 = ketcherCore.getSvgFromDrawnStructures(editor.canvas, 'file');
6554
+ var _svgData2 = ketcherCore.getSvgFromDrawnStructures(editor.canvas, 'file', {
6555
+ horizontal: editorOffsetRef.current.x,
6556
+ vertical: editorOffsetRef.current.y
6557
+ });
6522
6558
  if (!_svgData2) {
6523
6559
  onClose();
6524
6560
  return;
@@ -6549,6 +6585,9 @@ var Save = function Save(_ref) {
6549
6585
  dispatch(openErrorModal('This feature is not available in your browser'));
6550
6586
  }
6551
6587
  };
6588
+ React.useLayoutEffect(function () {
6589
+ calculateOffset();
6590
+ }, []);
6552
6591
  React.useEffect(function () {
6553
6592
  if (currentFileFormat === 'ket') {
6554
6593
  var ketSerializer = new ketcherCore.KetSerializer();
@@ -7746,7 +7785,7 @@ var PhosphateAvatar = function PhosphateAvatar() {
7746
7785
  width: "28",
7747
7786
  height: "28",
7748
7787
  rx: "15",
7749
- "stroke-dasharray": "4 4"
7788
+ strokeDasharray: "4 4"
7750
7789
  })
7751
7790
  })]
7752
7791
  });
@@ -8114,12 +8153,14 @@ var ErrorModal = function ErrorModal() {
8114
8153
  onClose: onClose,
8115
8154
  children: [jsxRuntime.jsx(Modal.Content, {
8116
8155
  children: jsxRuntime.jsx(ErrorTextWrapper, {
8156
+ "data-testid": "info-modal-body",
8117
8157
  children: errorMessage
8118
8158
  })
8119
8159
  }), jsxRuntime.jsx(Modal.Footer, {
8120
8160
  children: jsxRuntime.jsx(ActionButton, {
8121
8161
  label: "Close",
8122
- clickHandler: onClose
8162
+ clickHandler: onClose,
8163
+ "data-testId": "info-modal-close"
8123
8164
  })
8124
8165
  })]
8125
8166
  });
@@ -11438,10 +11479,24 @@ function LeftMenuComponent() {
11438
11479
  itemId: "hand",
11439
11480
  title: "Hand Tool (".concat(hotkeysShortcuts.hand, ")"),
11440
11481
  testId: "hand"
11441
- }), jsxRuntime.jsx(Menu.Item, {
11442
- itemId: "select-rectangle",
11443
- title: "Select Rectangle (".concat(hotkeysShortcuts.exit, ")"),
11444
- testId: "select-rectangle"
11482
+ }), jsxRuntime.jsx(Menu.Group, {
11483
+ children: jsxRuntime.jsxs(Menu.Submenu, {
11484
+ testId: "select-drop-down-button",
11485
+ needOpenByMenuItemClick: false,
11486
+ children: [jsxRuntime.jsx(Menu.Item, {
11487
+ itemId: "select-rectangle",
11488
+ title: "Select Rectangle (".concat(hotkeysShortcuts.exit, ")"),
11489
+ testId: "select-rectangle"
11490
+ }), jsxRuntime.jsx(Menu.Item, {
11491
+ itemId: "select-lasso",
11492
+ title: "Lasso selection (".concat(hotkeysShortcuts.exit, ")"),
11493
+ testId: "select-lasso"
11494
+ }), jsxRuntime.jsx(Menu.Item, {
11495
+ itemId: "select-fragment",
11496
+ title: "Fragment selection (".concat(hotkeysShortcuts.exit, ")"),
11497
+ testId: "select-fragment"
11498
+ })]
11499
+ })
11445
11500
  }), jsxRuntime.jsx(Menu.Item, {
11446
11501
  itemId: "erase",
11447
11502
  title: "Erase (".concat(hotkeysShortcuts.erase, ")"),